くろたんくブログ

Practice Makes Permanent

このエントリーをはてなブックマークに追加

2019年 9月 29日 日曜日 16:23:19 JST(modified: 2019年 9月 29日 日曜日 19:38:38 JST)
views: 136, keywords: Tech, R, renv

Rのパッケージ管理

最近、Rを使う機会があって、だいぶバージョンも古いし、この際だからいい感じ環境作りたいと思っていろいろ探してたら、
RStudioお手製のrenvなるパッケージがあったので使ってみた。

だいぶ使い勝手がよかったので、ついでにスライドにまとめてみた。

詳細はスライドを見た方がいいけど、簡単に説明すると
Rはパッケージのインストールが全体に影響するため、分析の再現性を担保するためにパッケージの管理を以下のようなフローで行った方がいい

  1. 使用するライブラリを決める
  2. 使用するライブラリのパッケージをインストールする
  3. コードとライブラリの状態(versionなど)を記録する
  4. 環境を再構築する必要がある時に復元する
    これらを簡単にできるようにしてくれたのがrenv

これまでも、Packratっていうのがあったんだけどちょっとイマイチで、あまり使っている人もいなくてビミョーな感じだった。
RStudioも公式PJページで以下のように言っているし、Packratをよりいい感じにしようとしているんだろうなぁと思う。

The goal is for renv to be a robust, stable replacement for the Packrat package, with fewer surprises and better default behaviors.

スライドではスペースの都合上、うまく書けなかったこととか書き忘れたこととして

  • Rscriptのlibrary(pkg)が書かれていることと保存されていることが重要
  • renv.lockはrenv::init()時にGitで管理してrenv::snapshot()するたびにcommitする
  • まっさらなRscriptで始めなくてもよくて、別のPJからrenv.lockを持ってきて、library(pkg)を書ききってから保存してrenv::init()してもいい(現状のglobal cacheからインストールされる)
  • private libraryから消すならrenv::remove()

PythonはRと比べて環境構築の流れがある程度出来上がっているけれど、Rはまだまだという印象なので、会社でも布教していこうかな

prev:レオちゃん用のカメラ購入 next:tidy脳になりたい