ネットでみた記事に発奮して,やってみた。
文芸的プログラミングというやつらしい。これはどうにも訳語が悪いと思うのだが,要はレポートの中に入れる数値,表,グラフなんかをプログラミングしておこうという考え方みたいだ。そのプログラムがあれば,データセットを変えるだけで何度も同様のレポートを生産することができる。いちいち数字の変更をすることなく,だ。
レポートを量産する予定がなくても,Rのコードや結果を含んだレポート,論文を書く時は便利だろう。
しかも,R studioに機能統合されているので,特に難しいことを気にせず実行できるというのがいいじゃないか。
ということで,サンプルコードを書いてみました。R,R studio, TeXの環境が整っていないと駄目ですよ,念のため。
まずはSweave。これはTeX のコードを書いて,途中にRのコードを入れるのね。R studio のFile>New>R Sweaveと選んでいくと,Sweave用コードを書く画面が自動的に現れる。texのプリアンブルなんかももう含まれてます。
そこに書いたサンプルコードはこんな感じ。
\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}
Hellow World!
にほんごがかきたかったのに
<<>>=
data(iris)
head(iris)
library(mvpart)
library(randomForest)
@
<<>>=
result <- rpart(Species~.,data=iris,method=”class”)
@
\begin{figure}[!h]
\begin{center}
<<fig=TRUE,width=12,height=6,echo=T>>=
plot(result)
text(result)
@
\caption{Classfication tree of iris data}
\label{fig:ctr}
\end{center}
\end{figure}
\end{document}
で,これを「compilePDF」とするだけ。あ,ファイルはASCIIコードで保存してね。UTF-8は駄目だったなぁ。
なので,ご覧の通り,日本語は文字化けします。jsarticleじゃなくてarticle環境で書いているのですが,なんでかというとplatex2eコンパイラを使わせてもらえないから。コンパイラを該当するものに変えるには,さらに環境設定が必要みたい。今回は遊びなので,そこまで求めません。英語限定でも,Rソースとその結果がダイナミックに作れるのは嬉しいね。
ちなみに,パッケージSweaveがRstudioの中に入っているみたいなんだけど,R2.15.1に対応してないみたいなので,RstudioあるいはR,またはSweaveパッケージのバージョン違いには要注意です。
次にknitr。これは結果をhtmlで出力するのがデフォ。なぜかパッケージのインストールに手間取って,Rstudioの上からパッケージをインストールするも動かず。結局Rを直接起動して(つまりRgui.appで)install.packages(“knitr”)してからRstudioに戻ったらできた。たぶん,ライブラリパスがRとRstudioで違うんだ。後でちょっと整えておかないとな(R studioではR_LIBがどうかなってるんだろうか。よくわからん)。ともかく,Sweave同様にFile > New > R Markdownを選択。
で,やってみたのがこれ。
何もしなくても,日本語が通ります!しかも文字のサイズを変えるとか,texの数式を書くというのが簡単にできました。肝心のRコードやその結果を書くところまではいってないけど,こっちの方が簡単にできる感じかなぁ。
まだバージョン1にもなってないRstudioですが,色々今後が楽しみになってきました。