【メモ】RStudioでパッケージがインストールできない人向けのメモ

表題の通り。
ハマったので自分用にメモ。何がハマったって、Rのパッケージ（ライブラリ）のインストール場所です。


## 環境

- Windows 10 Pro
- RStudio 1.3.1056


## RStudioをChocolateryでインストールする

ググると公式サイトからダウンロードする方法がいっぱい見つかりますが、複数の環境でソフトを管理するのに便利なので、今回は [Chocolatey](https://chocolatey.org/) を使ってインストールすることにします。
※Chocolatey を使ってインストールしたから今回の問題にハマったのかは調査していません。

管理者権限で PowerShell を開いて、以下のコマンドをタイプします：

```powershell
choco install r.project r.studio rtools
```
`r.project` がR言語のインタプリタ、`r.studio` が RStudio です。 `rtools` は、Rのパッケージ（ライブラリ）をインストールする際に要求されるので入れておきます。


## Rのパッケージをインストールする

RStudioのインストールが終わったら、スタートメニューからRStudioを開いて、左下のコンソールに次のような感じで入力してパッケージをインストールします：

```R
> install.packages("DAAG")
```

すると、期待通りパッケージがインストール・・・はされずに、次のようなダイアログが表示されます：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100577/e783a480-d686-991d-39a6-2174c2ca0736.png)

同時にコンソールには次のようなWarningが：

```
Warning in install.packages :
  'lib = "C:/Program Files/R/R-4.0.2/library"' is not writable
```

なるほど、Program Files以下に書き込み権限がなかったので、代わりにユーザーディレクトリ以下にインストールするか聞いているわけですね。もちろん「Yes」をクリック。

すると、今度はこんなダイアログが表示されます：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100577/a48df9ee-380c-40c1-6a79-1a75e82ebe74.png)

「あっ、これ日本語周りでバグってんなー」という予感がしつつも「Yes」をクリックします。
すると、ダイアログボックスが消えて、コンソールにはこんなメッセージが：

```
Warning in install.packages :
  cannot create dir 'C:\Users\Daisu\OneDrive\??????', reason 'Invalid argument'
Error in install.packages : unable to create ‘C:/Users/Daisu/OneDrive/??????/R/win-library/4.0’
```

いやな予感がしたとおり、ダメでした。

なお、「??????」となっている部分は「ドキュメント」と言いたかったようです。
なんでホームディレクトリの「Documents」ではなくOnedriveの下の「ドキュメント」を使おうとしているのか謎ですが、ともかくパスに日本語が入っているとダメらしいです。

上記のWarningメッセージとかでググると、同じ問題に当たっている人がRStudioのフォーラムにもいるのですが、有識者からは[「RStudioを管理者権限で起動しろ」と一蹴されておりました](https://community.rstudio.com/t/package-installation-error-library-is-not-writable/19173)。

いや、それがしたくないから personal library を作りたいと言ってるのですが。。。


## 解決策

ユーザー環境変数に `R_LIBS_USER` を追加してライブラリの場所を追加します：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100577/63b60a60-00d6-6ccf-f65e-7a1a5d162cd7.png)

今回はユーザーフォルダの下に「R」というフォルダを作って、その下に personal library をインストールすることにしました。フォルダ名の「Daisu」となっているところは、ご自分のユーザー名に適宜書き換えてください。

環境変数の設定の仕方は、スタートメニューの「歯車」アイコンをクリックして、「Windowsの設定」で「環境変数」とか入力して検索してください：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100577/87de90bf-0fcf-a7bf-6914-06944e4ad1a5.png)

環境変数を指定したら、RStudio を再起動して設定が反映されているか確認しましょう。
RStudio でパッケージのインストール先を確認するには、コンソールで次のように入力します：

```R
> .libPaths()
[1] "C:/Users/Daisu/R/win-library/4.0"   "C:/Program Files/R/R-4.0.2/library"
```

ちゃんと追加されていますね。
では、もう一度パッケージのインストールをトライしてみましょう：

```R
> install.packages("DAAG")
Installing package into ‘C:/Users/Daisu/R/win-library/4.0’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/DAAG_1.24.zip'
Content type 'application/zip' length 2105966 bytes (2.0 MB)
downloaded 2.0 MB

package ‘DAAG’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
	C:\Users\Daisu\AppData\Local\Temp\RtmpITBniB\downloaded_packages
```

今度は無事にインストールできました。

めでたし、めでたし。


## 追加の謎

ホームディレクトリに .Rprofile を置いてその中で設定するという方法もよく紹介されているのですが、自分の環境では .Rprofile を置いても反映されませんでした。
[Stack Overflow でも同じ問題に遭遇している人がいるので](https://stackoverflow.com/questions/31707941/how-do-i-change-the-default-library-path-for-r-packages)、もしかすると RStudio の Windows版のバグ？



## 参考

- [Unable to install packages/Create library - General - RStudio Community](https://community.rstudio.com/t/unable-to-install-packages-create-library/43031)
- [How do I change the default library path for R packages - Stack Overflow](https://stackoverflow.com/questions/31707941/how-do-i-change-the-default-library-path-for-r-packages)