3  プロジェクト

データ分析作業は一朝一夕には終わらないものです。 短いものでは数ヶ月、時には数年にわたることも珍しくありません。 データ分析に費やす時間が長くなると、次第に関連するファイルも増えていきます。 最初は数ファイルだったものが、追加の分析や再解析を行う過程で、数十、数百と増えていくこともあります。

担当する案件も一つだけでなく、複数の案件を同時に進めることもあります。 そのとき、案件に応じて利用するデータやコードは当然異なります。

案件 = プロジェクトとして捉え

長期間、多数のファイルを扱う作業を効率的に行うために、プロジェクトを利用することができます。 プロジェクトは、関連するファイルを一つのまとまりとして扱うための仕組みです。

そのため、作業を途中で中断しても、後で再開できるように、作業内容を保存しておくことが重要です。このような作業を効率的に行うために、プロジェクトを利用することができます。

3.1 統合開発環境

プログラム開発で必要なエディタやコンパイラ、デバッガなどのツールを一つにまとめたものを統合開発環境(IDE: Integrated Development Environment)と呼びます。 Rは単体のアプリケーションとして提供されていますが、RStudioやVS CodeというIDEを利用することで、より使いやすく、効率的に作業を行えるようになる利点があります。

3.2 RStudio

RStudioは、RおよびPythonのための統合開発環境(IDE)です。 Posit(旧RStudio)により開発されており、無償で利用可能なものとしてデスクトップ版とサーバー版が存在します。 デスクトップ版の実行には、R 3.6.0以上のインストールが必要です。

RStudioの特徴は、Rの実行に必要、利便性を高める機能を「ペイン」と呼ばれる区画に分けて表示していることです。 ペインはさらに複数のタブを持つことができます。 例えば、ソースコードを編集するソースペインでは、タブにより複数のファイルを開くことができます。 セッションで生成したオブジェクトについて把握できるEnvironタブや、プロットした図を表示させるPlotsタブなど、さまざまなタブ機能が用意されています。 これらのRStudioの機能は 松村優哉 ほか (2021) に詳しく記載されています。

3.2.1 RStudioのプロジェクト

RStudioではプロジェクト機能を利用して、データやコード、成果物を一つのまとまりとして扱うことができます。 またGitバージョン管理との連携も可能です。 このことは次章で詳しく説明します。

プロジェクトの作成はメニューバーあるいはrstudioapiパッケージの関数を使って行います。 メニューバーでは、FileNew Projectの順に進むと、新規のフォルダにプロジェクトを用意するか、既存のフォルダをプロジェクトとして扱うか、あるいはバージョン管理システムを利用するかの選択を行う画面が表示されます。

ここでは新規フォルダにプロジェクトを用意する前提で進めます。 RStudioでは、パッケージの開発やShinyアプリケーションなど、用途に応じたプロジェクトのテンプレートが用意されており、目的に応じて選択することができます。 一般的なデータ分析プロジェクトを作成する場合は、New Directoryを選択します。

次の画面でプロジェクトの名前と保存先を指定します。 簡潔で明瞭なプロジェクト名をつけるとよいでしょう。 著者は、プロジェクトの保存先のフォルダ名に、プロジェクト発足の西暦をつけるようにしています。 また、プロジェクト名に西暦の末尾2桁をつけることも、プロジェクトの識別に役立つテクニックです。

# rstudioapiパッケージを使ってプロジェクトを作成する
rstudioapi::openProject("~/Documents/projects2024/rrr-demo")

再現可能なデータ分析プロジェクトの立ち上げ。2つのチェックボックスにチェックをつけて作成することで、gitリポジトリの初期化とrenvパッケージによるパッケージの管理が設定され、再現可能性が高まる。 プロジェクトを作成すると、プロジェクト用のディレクトリが作成され、その中にプロジェクトファイル(.Rproj)が作成されます。 プロジェクト作成後は、.Rprojファイルのあるディレクトリが作業ディレクトリとして設定されます。 RStudioでは、プロジェクトの利用を想定しているため、簡単にプロジェクトを切り替えたり、複数のプロジェクトを同時に立ち上げることが可能です。

RStudioプロジェクトでは、プロジェクト単位で環境を管理します。 メニューバーの ToolsProject Optionsからプロジェクトの設定を変更できます。 ここでは、プロジェクト全般にかかわる設定、パイプ演算子の種類やタブの幅、バージョン管理システムの設定などを行うことができます。 これらの設定はプロジェクトを利用する全員に適用されます。

プロジェクトの設定で特に重要なのは、作業空間に関する項目です。 立ち上げ時に.RDataを読み込むか、終了時に.RDataへの保存を行うか、履歴を保存するかの3つの項目について設定できます。 著者の考えでは、.RDataについてはいずれも No (読み込まない、保存しない)を選択することをお勧めします。 履歴については、Yesで良いでしょう。 ソースコードに残っていない履歴が、作業の再現に役立つこともあるためです。

.RDataに関する設定を行わない理由を説明します。 .RDataはRの作業空間を保存するファイルです。 作成、定義したRオブジェクトが保存されるため、以前の作業状態を再現する際に便利です。 特に作成に時間がかかるオブジェクトを再利用する場合には有用です。 しかし、常にそれを行う必要性はありません。 利点よりも、.RDataの読み込みによって、起動時に意図しないオブジェクトが存在してしまう可能性を考慮するべきです。 また.RDataを読み込み・保存するようにすると、起動と終了時に時間がかかることもあります。

プロジェクトの設定。作業空間に関する項目では.RDataを読み込まない、保存しないようにすることが推奨される。 ## VS Codeの利用

Microsoftが提供するVisual Studio Code (VS Code)もRの開発環境の選択肢となります。 標準ではRの実行環境は提供されていませんが、拡張機能をインストールすることでRStudioのようにコーディングから実行までシームレスに行うことができます。

VS Codeでは、作業空間と呼ばれる単位で関連するファイルを管理します。 これはRStudioのプロジェクト機能と類似の考え方です。

VS Codeの特徴は、Rだけでなくさまざまな言語の開発に対応していることです。 拡張機能を利用することで、ユーザーが必要とする機能を追加することができます。 拡張機能には、Git、GitHubとの連携を行うものやドキュメントの生成を容易に行うものなどがあります。 これによりデータ分析の作業を効率的に行うことが期待されます。

3.2.2 Positron

現時点で正式なリリースはされていませんが、PositがオープンソースのVS Codeをベースに開発を進めるPositronも注目されています。

Positronの特徴は、RやPythonといったデータ分析で用いる言語の実行、ドキュメント作成に特化している点です。 RStudioのような環境変数の管理を、RだけでなくPythonの環境でも提供します。 またQuarto、Jupyterといったドキュメント生成ツールとの連携が容易に行えるようになっています。 これについてはドキュメントの章で取り上げます。

VS Code同様に拡張機能によって、多様な機能を追加できる点も魅力の一つです。 VS Codeとの違いは、ライセンス上の問題からインストール可能な機能拡張は[Open VSX Registry] (https://open-vsx.org/)で管理されるものに限定されるという点です。 ここには数多くの拡張機能が登録されていますが、すべてではありません。 いくつかの拡張機能は本家のVS Codeでのみ利用可能です。

また、rig(第2章参照)などで複数バージョンのRが利用可能な環境であれば、 アプリケーションの中で任意のバージョンへの切り替えが可能です1

PositronでのR実行バージョンの切り替え

3.3 hereパッケージ

3.4 ディレクトリ構成

- data/
- data-raw/
- R/
- src/

3.5 スタイルガイド

3.5.1 stylerパッケージ

3.5.2 lintrパッケージ


  1. Positronの動作環境として、R 4.2.0以上、Pythonでは 3.8以上が必要です。これ以下のバージョンはインストールされていても利用できません。↩︎