R Markdown
RではR Markdownでコードを記述することで、データ解析の結果、データ解析に使われたプログラム、解析プロセスの説明等をHTMLやPDFなどのフォーマットでレポート化することできる。他人に解析結果と解析方法を共有する場合に大変便利な機能だが、ここではR Markdownで美しいレポートを作るためのTipsをまとめようと思う。
R Markdownの基本的な記法や使い方は以下のページがわかりやすいです。
R Markdownに関する大体の情報は基本的には以下のページに網羅されているので、こちらもご参照ください。
1. テンプレートを使う
rmdformatsやprettydocといったパッケージが美しいデザインのテンプレートを用意しておりオススメ。rmdformatsだけでも>5種類のレイアウトが用意されている。個人的にはrobobookが気に入っている。
基本的にはR Markdownのヘッダーのoutput
に以下のような内容を加えるだけでOK。個人的によく使うオプションは以下。
code_folding
: デフォルトでスクリプト部分を隠したい (ボタンを押すと表示される) 場合は"hide"とするnumber_sections
: セクション番号 (e.g. 1. 〇〇〇〇〇) をつける場合はtruethumbnails
: 画像をサムネイルとして表示する場合はtrue (大きい画像が存在する場合におすすめ)
--- title: "DOCUMENT TITLE" date: "`r Sys.Date()`" author: auroratummy output: rmdformats::robobook: code_folding: hide number_sections: false thumbnails: true ---
2. テーブル
テーブルはkableExtra、DT、formattableなどのパッケージを使うことで通常よりもスマートに表示することが可能です。formattableを使うとより高度な表の可視化が簡単にできるので、こちらも使ってみても良いかもしれません。*1
data(iris) library(kableExtra) kbl(iris) %>% kable_styling(bootstrap_options = "stripe") %>% scroll_box(width = "500px", height = "200px")
3. タブを使う
複数の条件で同様の解析を繰り返す場合などは、何も工夫せずにR Markdownでまとめると、たくさんの似た解析結果・コードが繰り返された冗長なレポートが作成されてしまう。このような場合は{.tabset}
を利用すると以下のようにタブで複数の解析結果・コードを一箇所にまとめることができる。
{.tabset}
の使い方は以下の通り。レベル1 ("#") のヘッダに{.tabset}
を指定すると、レベル2 ("##") のヘッダ下に記載される内容が一つのタブとしてまとめられる。レベル2 ("##") のヘッダに{.tabset}
を使うと、レベル3 ("###") の内容がまとめられる。
4. カラーパレット
以下のライブラリが便利。個人的には、Nature系雑誌で使われるカラーパレットなど、デザイン性の高いパレットを提供してくれるggsciが好み。ggsciが提供する関数はggplot2にそのまま利用できるので、この点も使いやすい。
- RColorBrewer
- ggsci
fig = ggplot(iris) + geom_point(aes(x=Sepal.Length, y=Sepal.Width, color=Species)) + theme_bw() + ggsci::scale_color_nejm() fig
5. plotlyを使う
可視化の際には基本的にplotlyを使うようにしている。特に一つの図の中に色の数がたくさんある場合は便利。ggplot2で作成した図のオブジェクトをggplotly
関数に与えるだけで簡単にplotly的なインタラクティブな図にできる。
fig = ggplot(iris) + geom_point(aes(x=Sepal.Length, y=Sepal.Width, color=Species)) + theme_bw() + ggsci::scale_color_nejm() library(plotly) ggplotly(fig)