みなさん,研究プロジェクトをどう管理していますか? データ解析のコードをどう管理していますか?
わたしは生物統計家として,さまざまな研究プロジェクトに関わらせていただいてます.
以前はプロジェクトごとに,その場その場でドキュメントやコードを管理していて,分からなくなることもよくありました.このような経験から,少しずつプロジェクト管理の標準化を図ってきました.
最近落ち着いた気もするので,まとめようと思います.(あくまで,医学研究の,かつデータ解析に特化した管理方法です)
プロジェクトフォルダ構成
研究プロジェクトごとに,フォルダの構成がバラバラだと,後で振り返った時に昔の自分を罵りたくなりますね.そうならないために,今の私のフォルダは次のようになっています.
Documentフォルダ
Projectに関連する資料はここに格納します.論文関係ならば「papers」というようなサブフォルダを作っても良いと思います.
Dataフォルダ
Original_dataというサブフォルダを作るのが最重要です.入手したオリジナルデータは絶対変更してはいけません.
データを変更する場合は,コピーした上で,Dataフォルダ直下に格納します.またデータの名前は,解析することも考えて半角英数を推奨します.
R Project File
この記事では,データ解析を統計解析ソフトRを用いて話を進めます.Rを使って解析するときは,RStudioの機能であるR projectを必ず使いましょう.これにより,RStudio上でも,プロジェクトごとに解析を管理することができます.
R Projectの導入
Existing Directoryを選択し,先ほど作成したプロジェクトフォルダ直下のパスを指定します.そうすることで,.Rprojファイルがプロジェクトフォルダ直下に作られます.
Scriptフォルダ
解析用のコードはここに格納します.自作の関数は,Fuctionsというサブフォルダに入れると良いと思います.
Scriptフォルダ内のRプログラムで,Dataフォルダ内にあるデータにアクセスしたいときは,次のコードを書きます.例はcsvファイルの読み込みです.読み込みたいファイルに合わせ,適当に変更してください.
imported_data <- read_csv("Data/xxxx.csv")
Rmarkdownファイルで,Dataフォルダ内にあるデータにアクセスする場合は,同じDataフォルダであってもコードが異なります.1
imported_data <- read_csv("../Data/xxxx.csv")
Outputフォルダ
Rで作成した図は,Outputフォルダに出力すると,Scriptフォルダ内が乱雑にならないと思います.
こんな感じで研究プロジェクトを管理していきます.
コードの管理:GitHubとの連携
ここからRコードを管理する方法を説明します.やっぱりGit使えるとかっこいいですよね.さらにGitHubを使うと草も生えていきますし,それがモチベーションにつながるかもしれません.
(スクショ取ったけれども,ハロウィーン仕様だし,大して草生えてなくて草生えました)
GitやGitHubの導入は,他の記事をご参考ください.わかりやすい記事はたくさんあると思います.
RStudioとGitHubとの素晴らしい連携記事もあります.しかし私は使いこなすことができませんでした...
- シンプルなことしかできません.
- たくさん覚えられません.
- コードを共有することはあっても,基本的にコードを書くのは一人です.
こんな私でもできるミニマムな方法は次の通りです.
1. Scriptフォルダに,ターミナル等で移動
cd /Users/xxx/yyy/Script
2. GitHubでリポジトリを作成
Repositoris→Newをクリック!
適当にRepository nameをつけて,Create repositoryをクリック! コードのアクセス権をPublicにするかPrivateにするか注意してください.
3. ScriptフォルダとGitHubを連携させる
さきほどのターミナルで
git init
4. アップするコードを選ぶ
git add demo.R
5. 適当にコメントします
後で振り返った時に,何か分かるようにコメントします.
git commit -m "適当にコメント"
6. おまじない
よくわからないけど,おまじないします.2
git branch -M main
7. 一時的な置き場所にコードをプッシュ
git remote add origin https://github.com/ID/demo.git
これは,2の作業を終えた後に,GitHubで出してくれるページに書いてあります.6番目です.
8. 最後にGitHubにプッシュ
git push -u origin main
2回目以降は?
4から8を繰り返します.
そう!結局は,7であげたスクショのコードです!正直なところ何をやっているかよく分からないところもありますが,結果的にコードをGitHubで管理できています!!2
最後に
私なりのミニマムな研究プロジェクトの管理方法を書いてみました.
特にGitHubの連携なんか何も工夫していません.
でもGitHub使ってコードを管理したいけど,どうしたらいいか分からない人にとっては,こういうことも分からないんです.
この記事がそのような方々の背中を押すことができれば嬉しいです.