class: center, middle, inverse, title-slide # Rmarkdownで日本語論文を書いてみよう! ### 国里愛彦 (専修大学) ### 2020年10月31日 --- # jpaRmdパッケージ - rstudioのrticlesは便利だが,日本の心理学系の雑誌には対応していない。 - jpaRmd(https://github.com/ykunisato/jpaRmd )パッケージを自作!(ないなら作る!) - jpaRmdは,「心理学研究」の投稿時に求められる書式をPDFで出力するRMarkdownのテンプレートを提供するRパッケージ --- # [脱線]専修大学心理学科卒論用Rmd - senshuRmd(https://github.com/ykunisato/senshuRmd )は,専修大学の心理学科の卒論で求められる形式のPDF出力するRMarkdownテンプレート用Rパッケージ - ゼミのRstudioサーバーにゼミ生のアカウントをつくって,ゼミ生はこのRmdを更新&Githubでバージョン管理(出力されたPDFを確認したり,実際にゼミ中に操作する) - 作成から1年経つが利用しているのは,弊研究室のみ... --- # [脱線]事前登録用Rmdテンプレート - 卒論でも仮説・方法・解析の事前登録できると良い - [AsPredictedテンプレート用Rmdファイル](https://github.com/ykunisato/AsPredicted_Rmd_template)をゼミ生用に自作 - AsPredicted形式のファイルをGitHubでタイムスタンプ付きで保存すれば簡易の事前登録として使える(もちろんOSFにアップするのも良い) <img src="fig/aspredicted.png" width="450"> --- # jpaRmdのインストール - jpaRmdは,githubからremotesのinstall_github()関数を用いてインストールする(cranには登録されていない)。 ```r # install.packages("remotes") remotes::install_github("ykunisato/jpaRmd") ``` --- # jpaRmdの使用法 <img src="fig/jparmd1.png" width="600" align="right"> File → New File → RMarkdown… --- <img src="fig/jparmd2.png" width="570" align="right"> From Template → Japanese Psychological Association format{jpaRmd}をクリックして,OK Nameを好きな名前にする。 --- # 初knit <img src="fig/jparmd3.png" width="570" align="right"> フォルダが作成されいくつかのファイルとが配置される。 Rmdファイルが自動に開くので,knitをしてみる。 --- <img src="fig/jparmd6.png" width="470" align="right"> - こんな感じのPDFが出てきたら成功。 - 最初はtexのパッケージのインストールがあるので,数分かかる。 --- # 日本語のためにスペルチェックをオフ <img src="fig/jparmd4.png" width="530" align="right"> 最近のRStudioのスペルチェック機能は日本語入力時には不便(英語は便利) Tools → Global Options... 赤点線で囲われたチェックボックスのチェックを.red[取る] --- # 日本語入力のための工夫 <img src="fig/jparmd5.png" width="580" align="right"> RStudioのversion 1.3.1093では,1つ目に開いたファイルでは日本語入力ができない呪いがある(理由は不明) 良い解決法はないので,日本語を入力するファイルの前になにか適当なファイルを開いておいて(例の場合はmemo.md),日本語入力する。 --- # jpaRmdでResearch Compendium - set_rc_jpa()関数を使えば,『心理学研究』用のRmdや解析,データを配置するフォルダなども準備される。 - set_rc_jpa()の引数にプロジェクト名を入れて実行(これがディレクトリ名になる) ```r library(jpaRmd) set_rc_jpa("rmarkdown_for_reproducibility") ``` --- # jpaRmdのResearch Compendium set_rc_jpa("プロジェクト名")を実行すると,プロジェクト名のディレクトリー下に以下のディレクトリーが作られる。 - analysis: 分析用ファイルを置く場所 - data:データを置く場所 - function: 分析で使う汎用関数のファイルを置く場所 - materials: 研究で使ったマテリアルを置く場所 - paper: 論文原稿を置く場所 - README.md : 説明を書くファイル --- class: left, middle # jpaRmdで自分の論文を書いてみよう! --- <img src="fig/jparmd7.png" width="650" align="right"> title, subtitle, Abstract, Key wordsを自分用に変更する。 原稿には著者名・所属は不要だが,投稿時には必要 --- <img src="fig/jparmd8.png" width="800"> - 最初に使用するRパッケージをlibrary()関数で読み込む。 - その下から本文を書き始める。 --- <img src="fig/jparmd9.png" width="800"> - PaperpileやCiNii(日本語文献情報)を利用 --- <img src="fig/jparmd10.png" width="600"> ちょっと不満もあるが,いい感じで引用できる。 --- <img src="fig/jparmd11.png" width="700"> 『心理学研究』は,25字*32行で1頁800字(余白は3.5cm以上)。その確認用文章。 --- <img src="fig/jparmd12.png" width="320" align="right"> 25字*32行の800字で1ページが構成されることを確認(ご自身の環境においても再現できるか確認ください。Dockerなので再現できるはずですが・・・) --- <img src="fig/jparmd13.png" width="800"> "#"は,方法,結果,考察などの大見出し "##"は,参加者や研究手続きなどの中見出し "**"で挟むと太字になるので,それで小見出しを表現できる --- <img src="fig/jparmd14.png" width="600"> - R Markdownの大見出し,中見出しに対応して,PDFが出力される(この調整は地味に大変だった)。 --- <img src="fig/jparmd15.png" width="650" align="right"> 論文内で数値の手による打ち込みとコピペをしない 学生の論文や査読でも,数字が合わないような状況はよくある .red[r sprintf('%.0f',本文にいれる数値のオブジェクト)]で,Rでデータをひっぱてきて本文に挿入する --- <img src="fig/jparmd14.png" width="600"> こんな感じで,数値が挿入される。 データが変わると,それに合わせて,本文も書き換わる。 --- <img src="fig/jparmd17.png" width="600"> - 結果も数値もタイピングとコピペをしない。 - FigureやTableの挿入位置を指定したい場合,.red[”\marginpar{\fbox{Table1}}”]を使う。 --- <img src="fig/jparmd16.png" width="600"> こんな感じで余白に挿入位置の指定がはいる(色々と試して,これが一番『心理学研究』に近かった)。 --- <img src="fig/jparmd18.png" width="800"> - 引用文献をいれたいところで,divで囲われた呪文を追加 - 脚注は自動ではないので(自動にすると本文のそのページに脚注が入っちゃう),引用文献の後ろに書き込む。 --- <img src="fig/jparmd19.png" width="700"> - Rで表のデータを作って,kable()でlatex形式の表を出力 --- <img src="fig/jparmd20.png" width="800"> - いい感じですね。 - LaTeX形式の表を出力すると,自動でTable1から連番が振られます。 --- - 画像ファイルの挿入は以下のようにする。[]内に図のタイトルを書く。 ``` ![How R Markdown works](fig1.png) ``` .med[※今回はRmdと同じ位置にあるfig1.pngを挿入しているが,場所を指定すれば他のフォルダのファイルも挿入可能(例えば,../analysis/result1.pngも可能)] - PDFでは以下のように出力される。Table同様,図はFigure1のように連番がつく。 <img src="fig/jparmd21.png" width="650"> --- # Rのggplotを挿入する - R Markdownのチャンクを.red[{r figs, echo=FALSE, message=FALSE, warning=FALSE, fig.width=7,fig.height=4,fig.cap="\\label{fig:figs}Examples of bar plot and scatter plot "}]のようにする(fig.width, fig.height, fig.capは適宜変更)。 ```r # 相関係数の算出で使ったと同じデータを使う summary_bfi_fig2 <- summary_bfi_fig %>% mutate(gender = ifelse(gender=="1", "Male","Female")) p1 <- ggplot(summary_bfi_fig2, #以降省略 ``` --- # ggplotをAPA風にする - jtoolsパッケージのtheme_apa()を使うとAPA形式の図を出力できる。p1の方の棒グラフは,長いので省略しますが,以下のようにtheme_apa()を追加すると,論文風の棒グラフになる。 ```r p2 <- ggplot(summary_bfi_fig2,aes(x = Extraversion, y = Neuroticism)) + geom_point() + theme_apa() ``` --- <img src="fig/jparmd22.png" width="700"> - 論文っぽい図が描けた。ggplotが使えるのでさらに魅力的な可視化も可能。 --- # 本文はともかく図表の挿入が面倒・・・ - 論文内の数値のミスは,致命的。 - コピペ汚染をできるだけ避けるために,図表の数値をRで直接操作し,それを論文に挿入できるのが理想。 --- # 未解決の問題 - 引用文献はインデントできてない。日本語文献は適切な順番で並んでいない。 - APAフォーマットと微妙に違うので(特に日本語),機械的な調整が難しい →面倒だがPDF出力してからTeXファイルをいじって,以下を実行することで一応解決できる。しかし,美しくない・・・ ```r xelatex("TeXファイル名.tex") ``` --- # 引用文献問題解決にむけて - 日本心理学会の日本語文献形式をAPAにより近づけて,機械が出力しやすいフォーマットにしていく? - 『心理学研究』などの日本の雑誌に特化した引用文献処理関数を作成する? →TeXやPandocに詳しい方は,jpaRmdの開発にご協力を! --- ## R Markdownをさらに極めたい方へ .med[ - ドキュメント・プレゼンテーション生成(高橋康介著,2014年,共立出版) - 再現可能性のすゝめ(高橋康介著,2018年,共立出版) - 自然科学研究のためのR入門(江口哲史著,2018年,共立出版) - RユーザのためのRStudio[実践]入門(松村優哉・湯谷啓明・紀ノ定保礼・前田和寛著,2018年,技術評論社) - R Markdown Cookbook (Yihui Xie, Christophe Dervieux, Emily Riederer, 2020年10月30日, Chapman and Hall/CRC) ] <img src="fig/book.png" width="800">