R Markdownで楽々レポートづくり

第2回 レポートづくりを加速せよ ~R Markdown環境の導入&チュートリアル~

この記事を読むのに必要な時間:およそ 5 分

前回はレポートづくりのオートメーション化がもたらすメリットについてやや概念的な説明をしました。今回はR Markdown環境を導入し,レポート作成の手順を説明します。実際に簡単なレポートづくりを体験して,R Markdownの威力を味わってください。

また,実務を想定した(とは言っても非常に単純化したものですが)2種類のチュートリアルを用意しましたので,これらのチュートリアルを通してオートメーション化されたレポートづくりを自分の仕事の中でどう活かすか想像してみてください。

なお,本連載記事に関する疑問・質問・コメントなどは著者Twitterアカウント@kohskeでも受け付けていますのでお気軽にどうぞ。

R Markdown環境の導入

R Markdownを利用するには,

  1. R
  2. {rmarkdown}パッケージ
  3. pandoc

の3つのツールを導入する必要があります。

  • PDF形式のレポートの作成に必要なLaTeX環境の導入については,PDFレポート作成の回に解説します。
  • RStudioには{rmarkdown}パッケージとpandocが入っているので,個別のインストールが面倒な場合はRStudioを使ってください。意識の高い我々は基本的に生Rで作業を進めます(バッチ処理によるレポート作成などを想定しています)⁠RStudioの活用については別の回で説明します。

Rのインストール

CRANからRをインストールします。解説がWeb上に大量にあるので参考にしてください(参考: RjpWiki)⁠

{rmarkdown}パッケージのインストール

Rを起動して,コンソール上で

install.packages("rmarkdown", dependencies = TRUE)

とします。CRANのミラーサイト選択画面が表示されたら,Japanのいずれかを選ぶとよいでしょう。{rmarkdown}パッケージを使うために必要な依存パッケージも自動的にインストールされます。

pandocのインストール

pandocは様々な形式のドキュメント変換を行うツールです。pandoc公式ダウンロードサイトからインストーラパッケージをダウンロードしてインストールします。ダウンロードリンクが少しわかりにくいですが,ページを下にスクロールするとpandoc-1.13.2-windows.msi(Windows)⁠pandoc-1.13.2-osx.pkg(Mac OS X)などのリンクが見つかります。OS Xの人はhomebrewなどを使ってインストールしても構いません。

インストールの確認

すべてインストールしたら,Rを起動して,コンソール上で

library(rmarkdown)
pandoc_available()

としてみてTRUEと出力されればOKです。

ダメな場合はおそらくpandocのパスの設定の問題ですが,様々な原因が考えられるので本記事コメント欄やTwitterで質問してもらえれば可能な限り回答します。

さて,準備は整いました。それではオートメーション化されたレポートづくりの世界へと旅立ちましょう。

R Markdownによるレポートの書式と作成手順

R Markdownによるレポート作成は,

  1. ドキュメントとRのコードをR Markdownファイル中に記述する。
  2. R上でrmarkdown::render()関数によりR MarkdownファイルをHTML形式(またはDOCXやPDF形式)に変換する。

という手順で進めます。

R Markdownファイルは,.Rmdという拡張子を持つテキストファイルです。この中に,ドキュメントとRのコードを記述していきます。最初は通常のレポートを書いているつもりでドキュメントを書き進めて,Rが出力する図・表・数値などを挿入したい場所にRのコードを書くのが良いでしょう。ドキュメントはMarkdownという記法で記述します。Markdown記法については次回説明します。

R Markdownファイルは,具体的には次のような内容のテキストファイルです。

# タイトルとか

`r Sys.Date()` @kohske

- レポートの説明とか
- 概要とか
- 云々

```{r}
# ここには解析コード
foo = rnorm(1000)
hist(foo)
```

さらに説明とか

- 今後の目標とか
- 人生の目標とか

```{r}
# ここにも解析コード
df = subset(mtcars, select = mpg:qsec)
knitr::kable(head(df))
```

このR Markdownファイルのファイル名をsample.Rmdとしましょう。これをHTMLレポートに変換するには,Rを起動してコンソール上で

library(rmarkdonw) # パッケージの読み込み
setwd("dir-of-sample") # 作業フォルダを変更します
render("sample.Rmd") # 変換!!
browseURL("sample.html") # ブラウザで開きます

とします。Rを起動することすら面倒な(バッチ処理をしたい)場合には,コンソールやコマンドプロンプトで

Rscript -e "rmarkdown::render('sample.Rmd');browseURL('sample.html')"

とすると良いでしょう。HTMLファイルをブラウザで開く必要がなければ,最後のbrowseURL(...)は不要です。

参考までに,上のsample.Rmdを変換して出力されるHTMLファイルsample.htmlは次のようになります。

  • 1つ目のコードの場所にヒストグラムが表示されている。
  • 2つ目のコードの場所にテーブルが表示されている。
  • 最初に日付が挿入されている。
  • ドキュメント部分がリストや見出しなどに整形されている。

といったことがわかります。

R Markdownファイルの書き方について,今回覚えてもらいたい決まり事はたった1つです。図・表・数値などを挿入したい場所には,

```{r}
# 解析コード
foo = bar
lm(hoge)
```

という形式の,3連続バッククォート```日本語キーボードではShift+@)で囲まれたブロックに,図・表・数値などを出力するコードを記述します。このブロックのことをコードチャンク最初の```の行をチャンクヘッダと呼びます。チャンクヘッダで```に続けて{r}とすることで,このブロックがRのコードとして処理されます。

ここまでの記事で,もう今日からでもレポートづくりのオートメーション化は可能です。拍子抜けするほど簡単だったかもしれませんが,シンプルなレポートづくりのオートメーション化は本当に簡単で,覚えるべきこともほとんどありません。

次に,やや実務に近い形式のレポート作成例を見てみましょう。と言っても,解析内容などが複雑になっているだけで,基本的なレポートの作成方法が複雑になるわけではありません。

著者プロフィール

高橋康介(たかはしこうすけ)

東京大学先端科学技術研究センター特任助教。専門は認知科学,認知心理学,認知神経科学。どうやったら人が幸せな気持ちになれるのか研究中。著書に「R言語上級ハンドブック」(分担執筆・C&R研究所),「ドキュメント・プレゼンテーション生成」(共立出版)。趣味はラテ・アート。

コメント

コメントの記入