install.packages("tidyverse")
Rの基本2 プロジェクトとパッケージ
プロジェクトの作成
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
ファイルに記録する。また,パッケージ本体はキャッシュされる。
renv
はホームフォルダにrenv.lock
ファイルと,パッケージ本体のキャッシュを保存する。そのため,Docker環境であっても,インストールしたパッケージを記録したり復元したりすることができる。renv
を用いれば,プロジェクトを開いた際にパッケージのインストール状態を復元してくれる。
プロジェクトを作成したら,まずrenv
パッケージをインストールして初期設定を行う。
install.packages("renv")
::init() renv
その後は,新しいパッケージをインストールした際に,スナップショット (renv.lock
ファイル)を作成する。
install.packages("tidyverse")
::snapshot() renv
これで,コンテナを終了しても,プロジェクトを開いた際にスナップショットを作成した時点のパッケージの状態が復元される。新しいパッケージをインストールしたときには,renv::snapshot()
を実行して,スナップショットを更新するのを忘れないようにしよう。
renv
パッケージを用いれば,プロジェクトごとに異なるバージョンのパッケージを利用したり,別のパソコンで同じ環境を構築したりすることができる。
renv.lock
からパッケージを復元する際に,パッケージのキャッシュがなければインターネットからダウンロードしてビルドするため,renv.lock
ファイルを共有すれば別のコンピュータでもパッケージのインストール状態を再現できる。