Quartoを用いた解析プロジェクト管理について
この記事は書きかけの状態で公開しています。時間があるときに更新します。
Quartoは、RやPythonなどの言語を使ってドキュメントやウェブサイトを作成できるオープンソースのツールです。 Qurtoでは、ブラウザ上で読むことのできる、HTML形式のドキュメントを簡単に作成できます。 これを使って、解析に順番のあるプロジェクトを管理できるのではないかと思いついたので、メモとして残します。
- ここでは、qmdファイルでRコードを実行することを前提としています。
- Quartoの基本的な使い方についてもできるだけ触れますが、詳細は公式ドキュメントをご覧ください。
解析における課題
多くの解析プロジェクトでは、複数のステップが順番に実行されます。 例えば、データの前処理、解析、可視化、レポート作成などです。
この時、処理ごとにスクリプトを分けて管理することが一般的です。 しかし、スクリプトが増えると、どの順番で実行すればよいのか分かりづらくなります。
これまで、私は00_data_preprocessing.R、01_analysis.R、02_visualization.Rのように、ファイル名に番号を振って順番を管理してきました。 しかし、ファイルが増えると番号の管理が煩雑になり、ミスが起こりやすくなります。 例えば、新しい解析を追加したとき、順番が変わった場合、ファイル名の番号をすべて変更する必要があります。
また、一つのqmdファイル内でも、コードセルごとに実行ができるため、いざ上から順番に実行したときに、変数が存在しないなどのエラーが発生することもあります。 例えば、前処理のコードセルを実行せずに解析のコードセルを実行すると、必要なデータが存在しないためエラーになります。
これらの課題を解決するために、QuartoのBook形式を用いて解析プロジェクトを管理する方法を考えました。 まだ試している段階ですが、以下にその方法をまとめておきます。
QuartoのBook形式とは
QuartoのBook形式は、複数のqmdファイルをまとめて一つのドキュメントとして出力できる機能です。 例えば、Rの入門書として有名なR for Data Science (2e)はQuartoのBook形式で作成されています。
そのほかにも最近は多くのR関連の書籍がQuartoのBook形式で作成されています。 実際にR for Data Science (2e)などを見ていただくと、実際の本のように、順番だってページが並び、途中途中にセクションがあることがわかります。
順番に実行する必要のある解析コードについても、同じようにBook形式で管理できるのではないかと考えました。
既存の解析プロジェクトの構成例
今回は、実際に近い例として、解析がデータの前処理、解析、可視化などのステップに分かれているプロジェクトを考えます。 例えば、ある解析プロジェクトで、以下のように解析フォルダを管理していたとします。
notebooks/
├── 01_data_preprocessing_AA.qmd
├── 02_data_preprocessing_BB.qmd
├── 03_analysis_CC.qmd
├── 04_analysis_DD.qmd
├── 05_visualization_EE.qmd
└── 06_visualization_FF.qmd
このように、各ステップごとにqmdファイルを分けて管理しています。 しかし、ある時、02_data_preprocessing_BBの前に新しい前処理ステップを追加したいとします。 この場合、ファイル名の番号をすべて変更する必要があり、非常に面倒です。
Quarto Bookの作成
この課題を解決するために、QuartoのBook形式を用いて解析プロジェクトを管理します。
Ctrl+Shift+Pでコマンドパレットを開き、“Quarto: Create New Book Project”を選択します。 プロジェクト名を入力し、保存先フォルダを指定します。