RstudioをGitHubとプロジェクトテンプレートで管理する

目次
  1. Github を使ってバージョン管理する
  2. Cloneの作成
  3. プロジェクト内の整理

Rstudioを使うにあたり整理方法を決めておかないと、プロジェクトが増えれば増えるほど、どのスクリプトが最新で、どのような内容で、そこで生成したファイルがどこにいったのか、わからなくなってきます。今は良いかもしれませんが、未来の自分は今の状況をきっと覚えてはいないでしょう。

"フォルダの中を見に戻って、ファイルやスクリプトを整理する。半年放置した後にいきなり見てもガッカリ、ウンザリしないような状態にする。それはかなり後のことになるので、整理整頓にかける時間は、今、十分にある。" https://t.co/2WpBzzYVVP

— Shoei (@shoei05) July 21, 2020

Github を使ってバージョン管理する

GithubとRstudioの連携について、すでにこちらの記事によくまとまっています((Github入門. Accessed February 21, 2021. https://kunisatolab.github.io/main/how-to-github.html))。詳しいGitの使い方について知りたい方は、@u_ribo さん((Uryu Shinyaさん (@u_ribo) / Twitter. Twitter. Accessed February 21, 2021. https://twitter.com/u_ribo))の こちらの記事が役に立ちます((RStudioではじめるGitによるバージョン管理. Qiita. Accessed February 21, 2021. https://qiita.com/uri/items/6b94609f156173ed43ed))。

Cloneの作成

私の場合は、テーマ(プロジェクト)が見つかったら、まずはGitHubにログインしてプライベート・リポジトリを作成します。Repositories > New を選択します。Repository nameにプロジェクト内容がわかるように名前をつけて、Create repository します。特に公開するものでなければ Private とします。

リポジトリのページにジャンプしたら、CodeからHTTPSのURLをコピーしておきます。

Rstudioを開きます(localhost:8787)。デスクトップ版でも問題ないですが、ここでは Docker環境下のRstudioを想定しています。下記記事もご参照ください。

https://plaza.umin.ac.jp/shoei05/wp/index.php/2020/10/17/56/

File > New Project > Version Control > Git を選択します。Repository URLに先程コピーしたURLを貼り、Project directory name と、サブディレクトリを設置する場所を指定したら、 Create Projectに進みます。

GitHubに登録している Usernameとパスワードを聞かれるので、それぞれ入力が完了すると、プロジェクトが開きます。これでCloneは完了です。

以降は、プロジェクトを開いたら、Pullで自分のPCのファイルを最新にする→作業後にCommitで変更履歴を残し、PushでGitHubリポジトリを最新にしておくことが日課になります。使い方は先程紹介した こちら((Github入門. Accessed February 21, 2021. https://kunisatolab.github.io/main/how-to-github.html)) と こちら((RStudioではじめるGitによるバージョン管理. Qiita. Accessed February 21, 2021. https://qiita.com/uri/items/6b94609f156173ed43ed))の記事を参照してください。「そもそもGitとは?」という方は、ドットインストールのgit入門((dotinstall. git入門 (全22回). ドットインストール. Accessed February 21, 2021. https://dotinstall.com/lessons/basic_git))がおすすめです。

Docker上のRstudioで最初にCommitをしようとすると、

fatal: unable to auto-detect email address (got 'hogehoge@hogehoge.(none)')Code language: JavaScript (javascript)

といったエラーが出るかもしれません。その場合は、RstudioのConsoleの横にあるTerminalから、

git config --global user.email {mail}
git config --global user.name {name}Code language: PHP (php)

を入力してください。{mail}に自身のメールアドレス、{name}に自分の名前を入力してください。その後は問題なくCommitできると思います。こちらを参考にしました。

プロジェクト内の整理

プロジェクトフォルダの中は予めルールを決めておいた方が良いです。私は、こちら((RStudioで卒論・修論執筆. Accessed February 21, 2021. https://kunisatolab.github.io/main/how-to-write-with-rstudio.html))を参考に、このように整理してみました。

"フォルダ構成:「data」処理データ、「thesis」原稿やfigure、「analysis」統計解析ファイル、「function」繰り返し使う関数、「materials」研究で用いた材料(調査票、実験課題)、「README」これらのフォルダについて第三者(そして未来の自分)が見て、わかるように説明" https://t.co/b7Epgiqjmz

— Shoei (@shoei05) October 19, 2020

フォルダを一つ一つ作成しても良いのですが、先程使用したRstudioのConsoleの横にあるTerminalから、

mkdir {data,thesis,analysis,function,materials}Code language: JavaScript (javascript)

と一行入力すれば、それぞれフォルダを作成することができます。

こちら((RStudioで卒論・修論執筆. Accessed February 21, 2021. https://kunisatolab.github.io/main/how-to-write-with-rstudio.html))で紹介されている {senshuRmd} を使う方法も便利です((Rmarkdown template for thesis format at Department of Psychology, Senshu University. Accessed February 21, 2021. https://ykunisato.github.io/senshuRmd/index.html))。{senshuRmd}は専修大学人間科学部心理学科での卒論・修論用にフォーマット調整をしたRMarkdownテンプレートとのことですが、学外の我々でも十分利用価値があります。

R でこのように入力・実行してみてください。{pacman}についてはこちらの記事で紹介しています。

https://plaza.umin.ac.jp/shoei05/wp/index.php/2020/10/24/145/
if (!require("pacman")) install.packages("pacman")
pacman::p_load_gh("senshuRmd")
set_rc_ccp("thesis") #thesisでもプロジェクト名でも良いですCode language: PHP (php)

そうすると、先程のフォルダのほか、テンプレートが自動生成されます。

thesisフォルダには卒論・修論用Rmdテンプレート(thesis.Rmd, reference.bib, apa-6th-edition.csl)が追加されています。

このthesis.Rmd の中が、また至れり尽せりといった感じで、卒論・修論全体の注意事項、序文で書くこと、文献の引用について、本文のそれぞれの項目(先行研究、目的、方法、考察、結論などなど)について記載する際の注意事項が掲載されています。

行動開始までのモチベーションの閾値が低くても行動できるように、整理整頓にはこのようなテンプレートを有り難く使わせてもらいつつ、作業環境をなるべく快適にしていきたいものです。

行動開始までのモチベーションの閾値を限りなく低くする言葉【メモ】”忙しいときでも、静寂を感じている人が、結果的に一番仕事が早い。” http://t.co/QuUrnu7UA6

— Shoei (@shoei05) May 18, 2014

【メモ】”6時間で木を切れと言われたら、最初の1時間は斧を研ぐのに使うだろう。/確実に言えるのは、世の中に確実なことなどないということだけだ。だから、何が起こってもあわてないように、あらかじめ備えておいたほうがいい。つねにバッファ(緩衝)をとっておくのだ。”(エッセンシャル思考)

— Shoei (@shoei05) April 12, 2015
この記事は旧サイト(UMIN)から移行したものです。内容は記載の公開・更新時点のものです。