jpaRmdで『心理学研究』論文を再現可能に書こう!

これは,Open and Reproducible Science Advent Calendar 2020 - Adventar17日目の記事です。

今年は,日本心理学会第84回大会で,竹林由武さんとチュートリアル・ワークショップ今日からできる再現可能な論文執筆を行いました。それにあたって,『心理学研究』投稿用のR MarkdownテンプレートパッケージjpaRmdを作ったので,その紹介をします。こちらを使うと,再現可能に投稿用原稿の作成が可能となります。国際誌に関しては,R Markdownテンプレートが充実してきていますが,和文誌はまだ多くなく,『心理学研究』を始めとする心理学和文誌のテンプレートはないように思います。無いなら作ろうの精神で作ってみました。

github.com

jpaRmdのインストール方法

インストールは,remotesのinstall_github()を使って,GitHub経由で行います。remotesがインストールされていない方は,事前にinstall.packages("remotes")でインストールください。

# install.packages("remotes")
remotes::install_github("ykunisato/jpaRmd")

日本心理学会『心理学研究』用テンプレート(非公認)

インストールができたら,RStudioで,「File」 -> 「New File」 -> 「R Markdown…」 をクリックします。

f:id:cpp-laboratory:20201215064923p:plain

以下の画面がでてきたら,「From Template」から「Japanese Psychological Association format {jpaRmd}」を選びます。

f:id:cpp-laboratory:20201215064926p:plain

なお,デフォルトでは,Untitledになっているので,適宜名前は変更ください。以下では,例として,Testに変更しています。「OK」をクリックします。

f:id:cpp-laboratory:20201215065331p:plain

フォルダができて,以下のようにファイルが配置されていると思います。また,自動でTest.Rmdというファイルが開くと思います。

f:id:cpp-laboratory:20201215064929p:plain

jpaRmdでは,bibファイルを用意して,LaTeX形式で引用をすると,心理学研究に合わせたフォーマットで引用文献を出力することができます(くわしくは,jpa_citeに合ったBibファイルの作り方 - Qiita)。まず,その設定をします。

f:id:cpp-laboratory:20201215064932p:plain

上記は,38行目のRmd_fileが"Untitled.Rmd"になっているので,以下のように,上記で設定した"Test.Rmd"に変更します。

f:id:cpp-laboratory:20201215064935p:plain

さて,早速,Knitをしてみましょう。Knitボタンをクリックしてください。もしかすると,Rmarkdownやその他のパッケージなどが入ってないと,初回時に色々とインストールされるので,PDFが出力されるまでに時間がかかるかもしれません。こんな感じのPDFが出力されます。いい感じですね。

f:id:cpp-laboratory:20201215064938p:plain

引用文献のためのbibファイルの準備方法については,@kosugittiの以下のマニュアルを参照ください。

qiita.com

Research Compendium機能

なお,おまけの機能として,Research Compendiumの関数も用意しています。以下のようにset_rc_jpa()関数を使って,引数にプロジェクト名をいれると(なおスペースは避けてください),『心理学研究』用のRmdや解析,データを配置するフォルダなども準備されます。

library(jpaRmd)
set_rc_jpa("rmarkdown_for_reproducibility")

上記を実行すると“rmarkdown_for_reproducibility”という名前のディレクトリーの下に以下の下位ディレクトリーができます。paperディレクトリ内のpaper.Rmdを開いて,引用文献に関するjpa_cite関数内のファイル名をpaper.Rmdに変更した上で,Knitを押してください。PDFが生成されます。

  • analysis: 分析用ファイルを置く場所
  • data: データを置く場所
  • function: 分析で使う汎用関数を定義したりした場合にそのファイルを置く場所
  • materials: 研究で使ったマテリアルを置く場所
  • paper: 論文原稿を置く場所
  • README.md

以下のような感じです。

f:id:cpp-laboratory:20201215065154p:plain

作成にあたっての色々

1年くらい前に,専修大学心理学科の卒論用テンプレートを作っていたので,日本心理学会第84回大会でチュートリアル・ワークショップ今日からできる再現可能な論文執筆では,『心理学研究』のテンプレートを作って配布しようと思いました(このテンプレートを作るように自分を仕向けるためにTWSを申請しました)。TWSの申請時点では開発をはじめておらず,本格的に開発スタートしたのは,10/17くらいで,約2週間前でした(言い訳すると,今年は自身の授業のオンライン化,各種学会でのオンラインでの発表,教務の仕事などでかなり時間が取れませんでした・・・)。授業などの合間を使って1週間くらいで作りました。作り方はそれほどややこしいものではなくて,ある程度試行錯誤することができると意外に簡単に作れます。ただ,試行錯誤が結構多いので,頭が良い人ほどイライラするかもしれません(私は結構,試行錯誤してうまくいくと喜ぶというシンプルな脳みそなので,この作業は結構楽しいです)。R Markdownテンプレートに興味を持たれた方は,以下の記事を参照ください。

cpp-laboratory.hatenablog.com

ただ,TWSを実施した2020年10月31日(土) の時点では,bibファイルからの引用文献の自動出力は,うまくできておらず,APA形式ではあるが,『心理学研究』の形式ではない状態でした(既存のスタイルファイルなどを編集すればうまくいくとかではなく抜本的な検討しないと上手くいかないので,及び腰になっていた)。そのことについて,ぼやいていましたら,同僚の小杉先生が,「やりましょう!」と便利な引用文献処理関数を作成くださいました。お忙しいのに,およそ2ヶ月位で引用文献を一から処理するR関数を作られました(本当にすごいです!)。詳しくは,以下を参照ください。

www.kosugitti.net

現状では,まだテンプレートで気になる部分があるのですが,実際に原稿を書いたりして,テストしつつ,最終的により洗練化したテンプレートにしていきたいなあと思います。

Enjoy!