この記事はドキュメンテーションツールAdvent Calendar (http://www.adventar.org/calendars/1196) の 3 日目です。
誕生日を再び迎え、老害ポイントが増えたのを記念に軽く投稿させてもらいます。
Rでドキュメンテーションといえば、もうRStudio の Rmarkdownで決まりということになっていて、私も使わないことはないんですが、日常、EmacsをLinuxで利用している身であり、資料やスライドは実は org-mode + Babel を使って作成しています。
org-mode + Babel って、多分Rユーザーのほとんどが知らないと思うんですが、要はレポートとRのコードを混在させたファイルを作成したら、一発でPDFに変換してくれる仕組みです。詳細は、ググって頂くとして、例えば、こんなファイルを用意します。
#+TITLE: Org をオルグする
#+AUTHOR: R_Linux
#+DATE: 2015年12月03日
#+BEAMER_THEME: Warsaw
#+BEAMER_COLOR_THEME: default
#+LATEX_HEADER: \RequirePackage{fancyvrb}
#+BEAMER_HEADER: \setbeamerfont{parent A}{size=\LARGE}
* ggplot2のコードとプロット
** R code :BMCOL:B_block:
:PROPERTIES:
:BEAMER_col: 0.5
:BEAMER_env: block
:END:
#+name: ggplot2
#+BEGIN_SRC R :results ouput graphics :file "ggplot2.pdf" :exports both :session *R* :cache yes
library(ggplot2)
gp <- ggplot(iris,
aes(x=Sepal.Width,
y=Sepal.Length,
colour=Species))
gp + geom_point()
#+END_SRC
** output :BMCOL:B_block:
:PROPERTIES:
:BEAMER_col: 0.5
:BEAMER_env: block
:BEAMER_act: <2->
:END:
#+RESULTS: ggplot2
これを変換すると、こんなスライドができあがります。
#+BEGIN_SRC R
#+END_SRC
こんな部分にRのコードを書いておくと、コードと実行結果、またグラフィックスを良い感じでドキュメントに配置してくれるわけです。
このファイルの場合、いったんLaTeXに変換してから PDF 化しています。LaTeXへの命令などは #+ATTR_LATEX
で指定できます。
Emacs なのでコードの挿入や補完も当然使えます。
とても便利なので、いつかEmacsを捨ててRStudioに移行しなきゃと思いつつ、現状に甘えているところです。
願わくば、来年はこのAdventで RMarkdown で少しノウハウ的なものを書けますように。