Help us understand the problem. What is going on with this article?

Rでの分析環境構築

猫も杓子もPython.今更Rはオワコンかもしれないけど,気軽に計算できる環境としてはやっぱりRは便利ですね.
Rを使ってRStudio上でのRmarkdownの作成と,いくつかのパッケージ(RCommander(オワコンかもしれないけど), tidyverse)のインストールまでできるようなものを書きます.

というのも,最近Windows10で問題が起こりぎみでそれについてうまい解決例までが示された記事が(私が探した限りでは)なかったということで,ある程度ととのえたものを書いておこうという気持ちです.

検証したバージョン

  • R (3.6.2)
  • RStudio (1.2.5003)

Windowsでの環境構築

Windowsでの環境構築はすこしややこしいので前準備が大切です.

  • 今回検証したWindowsバージョン: Windows 10 Pro バージョン1909

0. 前準備

いずれも同じようなトラブルですが,以下のような場合にはトラブルが発生する恐れがあります.
以下2つのいずれかに当てはまる場合には別途準備が必要です.

OneDriveとの連携をしている場合

  • 発生しうる問題:パッケージインストールを行う際に

確認方法

  1. 下図の1〜3の順番にOneDriveの設定を開く.
    タスクバーのOneDriveアイコン>その他>設定
    スクリーンショット

  2. 下図のとおり「バックアップ」タブの「バックアップを管理」を開く
    スクリーンショット

  3. 設定画面のドキュメント部分を確認して
    ファイルはバックアップされました」と書いてあればOneDriveと連携されている.
    スクリーンショット

解決方法

解決方法1

一番単純な方法(OneDriveバックアップ機能を用いていないのであればおすすめ)

ドキュメントのバックアップをやめる
「バックアップの停止」をクリックしてOneDriveとの連携を解除
スクリーンショット

解決方法2

Rを管理者権限にて実行

パッケージをインストールする際に管理者権限でRStudioを起動すれば良い.
PCのユーザ全員のRに影響を与えてしまうので,それをわかった上で実行する必要がある.
スクリーンショット

解決方法3

環境変数R_LIBS_USERに場所を記述
(OneDriveバックアップに対応したまま使うことができるが,今後のバージョンアップなどでどうなるかわからないので,これをやるときは注意)

  1. ドキュメントフォルダの中にパッケージインストール場所を作成する.

    C:/ユーザー/[ユーザ名]/Documentsというフォルダの中に「R」という空フォルダを作り,「R」フォルダの中に「win-library」というからフォルダを作る.
    作ったフォルダのpathがC:/ユーザー/[ユーザ名]/Documents/R/win-libraryであれば良い.
    スクリーンショット

  2. 「システム環境変数の編集」を開く

    スタートメニューでpathと検索すれば出てくる.
    スクリーンショット

  3. 環境変数を開く

  4. ユーザ環境変数に「R_LIBS_USER」を追加

    「新規」を押して,変数名に「R_LIBS_USER」,変数値に上で作成したフォルダのパスを記入してOKを押す.

スクリーンショット

この解決法の参考ページ

日本語のユーザ名で使っている場合

  • 発生しうる問題:RStudioが立ち上がらない

Microsoftアカウントでログインしている場合,問題はないが,オフラインアカウントを使っている場合には問題が発生することがある.

確認方法

設定>アカウントを開く

ユーザの情報のアイコンの下が「てすとゆーざ」のように日本語表記されている場合は,ユーザ名が日本語(雑な仮想環境を用意しているので,ライセンス認証していない)

スクリーンショット 2020-02-23 16.05.22.png

ほかには,デスクトップにできてるショートカットのプロパティを見るところからでも確認できる.
スクリーンショット 2020-02-23 20.08.43.png

こんなように日本語を含んでいるとうまくいかない.

解決方法

RStudioを利用するために新規ユーザを作成する.
Windows 10 でローカルのユーザー アカウントまたは管理者アカウントを作成するのページの「ローカル ユーザー アカウントを作成する」を参考に,日本語を含まないユーザーを作成し,そのユーザーアカウントを使ってRStudioを利用しましょう.

1. R, RStudioのインストール

下記のリンクからダウンロードをし,基本的には初期設定のままインストールすれば良い.

  • R
    • こちらのリンクからダウンロード
  • R tools
    • こちらのリンクからダウンロード
    • R toolsはrecommendedをインストールすれば良い.
  • RStudio
    • こちらのリンクからダウンロード
    • Windows版を選択してダウンロードする.

2. RMarkdownの作成

RStudioのファイルメニューから
File>New>R Notebookを開く.
スクリーンショット 2020-02-23 23.55.10.png

初回はパッケージのインストールに関するダイアログが出るのでYesを押してインストールする.
スクリーンショット 2020-02-23 23.55.35.png

するとインストールが始まる.
スクリーンショット 2020-02-23 23.55.53.png

インストールが完了したらRmdファイルが作成されるので,画面上のknitボタンを押してknitする.
うまくいけばR/RStudioは適切にインストールされているはず.

3. RCmdr, tidyverseのインストール

RStudioをを起動してコンソール画面に下記のコマンドを実行する.

RCommanderのインストール

RCommanderのインストールは次のコマンドを実行すれば良い.
一部のパッケージはソースからインストールするか聞かれるが,Noと答えれば良い.

install.packages("Rcmdr", dep=T)

tidyverseのインストール

tidyverseのインストールは次のコマンドを実行すれば良い.
一部のパッケージはソースからインストールするか聞かれるが,Noと答えれば良い.

install.packages("tidyverse", dep=T)

Macでの環境構築

Macでのインストールではそんなにトラブルがないはずです.
次のように順を追ってインストールしていけば問題なく環境の構築はできると思います.
ただ,日本語を含むグラフのプロットは少し曲者です.

1. R, RStudioのインストール

  • Xquartz
    • こちらのリンクからダウンロード
  • R
    • こちらのリンクからダウンロード
  • R tools
    • こちらのリンクからダウンロード

2. RMarkdownの作成

Windowsと同じようにFile>New>R Markdown...を開くとしていけばよい.
スクリーンショット 2020-03-06 14.23.53.png

3. RCmdr, tidyverseのインストール

RStudioをを起動してコンソール画面に下記のコマンドを実行する.

RCommanderのインストール

RCommanderのインストールは次のコマンドを実行すれば良い.
一部のパッケージはソースからインストールするか聞かれるが,Noと答えれば良い.

install.packages("Rcmdr", dep=T)

tidyverseのインストール

tidyverseのインストールは次のコマンドを実行すれば良い.
一部のパッケージはソースからインストールするか聞かれるが,Noと答えれば良い.

install.packages("tidyverse", dep=T)

A. 付録

plotの文字が豆腐になる

plotの日本語がうまく出ないという問題です.この問題は.Rprofileの設定が適切でないために発生します.

  • .Rprofileを作成しましょう.
  • 以下のようなファイルを作成して~直下に.Rprofileという名前で保存する.
setHook(packageEvent("grDevices", "onLoad"),
        function(...){
        if(.Platform$OS.type == "windows")
            grDevices::windowsFonts(sans ="MS Gothic",
                                    serif="MS Mincho",
                                    mono ="FixedFont")
        if(capabilities("aqua"))
            grDevices::quartzFonts(
              sans =grDevices::quartzFont(
                c("Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6",
                  "Hiragino Kaku Gothic Pro W3",
                  "Hiragino Kaku Gothic Pro W6")),
              serif=grDevices::quartzFont(
                c("Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6",
                  "Hiragino Mincho Pro W3",
                  "Hiragino Mincho Pro W6")))
        if(capabilities("X11"))
            grDevices::X11.options(
                fonts=c("-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*",
                        "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*"))
        grDevices::pdf.options(family="Japan1GothicBBB")
        grDevices::ps.options(family="Japan1GothicBBB")
        }
)

attach(NULL, name = "JapanEnv")
assign("familyset_hook",
       function() {
            winfontdevs=c("windows","win.metafile",
                          "png","bmp","jpeg","tiff","RStudioGD")
            macfontdevs=c("quartz","quartz_off_screen","RStudioGD")
            devname=strsplit(names(dev.cur()),":")\[[1L]\][1]
            if ((.Platform$OS.type == "windows") &&
                (devname %in% winfontdevs))
                    par(family="sans")
            if (capabilities("aqua") &&
                devname %in% macfontdevs)
                    par(family="sans")
       },
       pos="JapanEnv")
setHook("plot.new", get("familyset_hook", pos="JapanEnv"))
setHook("persp", get("familyset_hook", pos="JapanEnv"))

CSVファイルの読み込み

read.csv()関数でCSVファイルを読み込む場合はfileencodingオプションにてfileencoding="sjis"のように指定すれば良い

Rdataファイルについて

sjis環境で作成されたRdataファイルは中に日本語を含んでいると文字化けする.
詳しくはこの記事を参照のこと.

mokab
人間です.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした