【R】Projectとrenvを使って手軽に分析環境を保存する

複数のブロック間にひかれた点線。境界を分けるイメージ画像。

データ分析にとても役立つ「R」ですが、使っている間にR自体のバージョンやパッケージ(ライブラリ)のバージョンが変わることがよくあります。

通常ではパッケージのインストールフォルダが共通のため、新しいパッケージをインストールする際に依存しているパッケージが「気付かずに」アップデートされることもしばしば起こります。

論文に記載するパッケージのバージョンが分析と投稿までの間に変わっていた事もあります...。

他にも、本番環境と開発環境のRバージョンが異なると、開発環境で追加した機能の依存パッケージがインストールできなくなる場合も出てきます。

そんな状況を防ぐために、ここではRStudioのProjectとrenvを使って分析環境を保存する方法を説明しています。

RStudio – Project

RstudioはRの統合開発環境(IDE)で、Rに関わるファイル、関数、変数、パッケージ、図などを管理することができます。

中でもプロジェクト(Project)機能では、.Rprofileもプロジェクト毎に作成・読み込みされるため分析で必要になるファイルをまとめるだけでなくワーキングディレクトリや履歴も一緒に保存してくれます。

renv

renvは、Rstudioが開発しているRのパッケージ管理システムです。

使い方をまとめて下さっていたので、仕組みやコマンドはリンクをご覧ください。

以前のバージョンのパッケージも簡単にインストール

CRANから以前のバージョンのパッケージを個別にインストールすることもできますが、依存関係のあるパッケージも順次インストールが必要になるので少々手間がかかります。

renvではソースからコンパイルしてインストールされるので、古いバージョンのRから追加のパッケージをインストールする場合でも簡単にインストールできます(問題が起きる時もあります)。

ただし、コンパイルにはRtoolsが必要になるので、バージョンに合ったRtoolsをインストールしてください。

注意点

renv.lockの更新には注意

renv.lockの内容が変更されると当然保存される環境も変わるため、特に追加の分析・解析の場合は元の環境が変わらないようにプロジェクトフォルダを分ける、renv.lockのバージョン管理等が必要になります。

完全に環境を切り分けるにはコンテナや仮想環境

簡単に分析環境の保存ができるProjectとrenvですが、あくまで一定の条件で保存できるレベルです。

操作ミスで保存されている環境が変更される事もあるため、完全に同一環境で保存したい場合は分析環境別のコンテナ作成等、運用以外の技術的な方法を導入して下さい。

また、あくまで「環境を保存する」事が目的ですので、「特定のバージョンで環境を構築する」事は難しい場合もあります。

IT-TipsR,データ分析

Posted by ううら