install.packages("tidyverse")プロジェクトとパッケージ
プロジェクトの作成
Rでは,プロジェクトを作成して,プロジェクト単位でスクリプトやデータを管理することができる。プロジェクトを利用することのメリットは,
- プロジェクトのフォルダ内のファイルには相対パスでアクセスできる
- プロジェクトフォルダが深い階層にあったとしても,長いフルパスを書く必要がなくなる
- プロジェクトフォルダを移動してもパスを書き換える必要がない (プロジェクトフォルダをどこにおいても良い)
- プロジェクトごとに設定を切り替えることができる
- プロジェクトごとに利用するパッケージのバージョンを変えられる
プロジェクトを作成するには,RStudioのウィンドウの右上にあるプロジェクトメニューからNew Projectを選択する。新規に空のプロジェクトを作成するには,New Directory->New Projectの順に選択する。適当にプロジェクト名 (フォルダ名)を指定すれば,プロジェクトが作成される。

プロジェクトメニューの表示が,Project (None)からProject (プロジェクト名)に変わっていることを確認しよう。プロジェクトを切り替えるには,プロジェクトメニューからOpen Projectを選択して,切り替えたいプロジェクト (.Rprojファイル)を選択する。
ここから先の作業はプロジェクトを作成して行うようにしよう。
パッケージについて
インストールと読込み
Rは,追加のパッケージをインストールすることで機能を拡張できる。とくに,tidyverseパッケージには,データを取り扱う際に必要な機能が集約されており,現在ではRを用いた分析では,多くの場合tidyverseパッケージを利用する。
追加のパッケージをインストールするには,install.packages()関数を用いる。引数には,インストールしたいパッケージの名前を" "で囲って指定する。また,引数を,で区切れば,複数のパッケージを同時にインストールすることができる。
パッケージはインストールしただけで利用できるわけではなく,読込が必要である。パッケージを読み込むには,library()関数を用いる。
library(tidyverse)renvによるパッケージの管理
Dockerで環境を構築している場合は,パッケージをインストールしてもコンテナを終了すればデータが消えてしまうため,毎回インストールが必要になる。しかし,tidyverseなどのパッケージはインストールにかなりの時間がかかるため,毎回インストールしてから作業を始めるというのは現実的ではない。
そのため,パッケージの管理にはrenvパッケージを用いる。renvパッケージは,パッケージ管理を目的としており,インストールしたパッケージとそのバージョンをプロジェクトフォルダのrenv.lockファイルに記録する。また,パッケージ本体はホームフォルダの.cacheフォルダにキャッシュされる。.cacheフォルダはDocker volumeをマウントしているため,コンテナを終了してもパッケージのキャッシュは保持される。
renv.lockファイルは,プロジェクトごとに作成されるが,パッケージのキャッシュはホームフォルダの.cacheフォルダに保存される。そのため,任意のプロジェクトでインストールしたパッケージのキャッシュは,別のプロジェクトからも利用される。どこかで一度インストールしたパッケージは,別のプロジェクトでインストールする際にキャッシュから読み込まれるため,高速になる。
renvを用いれば,プロジェクトを開いた際にパッケージのインストール状態を復元してくれる。
プロジェクトを作成したら,まずrenvパッケージをインストールして初期設定を行う。
install.packages("renv")
renv::init()その後は,新しいパッケージをインストールした際に,スナップショット (renv.lockファイル)を作成する。
install.packages("tidyverse")
renv::snapshot()これで,コンテナを終了しても,プロジェクトを開いた際にスナップショットを作成した時点のパッケージの状態が復元される。新しいパッケージをインストールしたときには,renv::snapshot()を実行して,スナップショットを更新するのを忘れないようにしよう。
renvパッケージを用いれば,プロジェクトごとに異なるバージョンのパッケージを利用したり,別のパソコンで同じ環境を構築したりすることができる。
renv.lockからパッケージを復元する際に,パッケージのキャッシュがなければインターネットからダウンロードしてビルドするため,renv.lockファイルを共有すれば別のコンピュータでもパッケージのインストール状態を再現できる。