2013年6月18日火曜日

knitr package と RStudio (3) 

 前回、knitrとRStudioを利用して、R言語による分析のコメント、コマンドシンタックス、出力結果、グラフの全てを一つのHTMLファイルとして保存する方法を紹介しました。
(まだ見ていない方はこちらをどうぞ。)

 前回の方法は便利だと思うのですが、全てがPDFファイルとして保存されていると、印刷やシェアがもっと簡単です。  そこで今回はPDFで保存する方法を紹介します。


作業手順は次の通りです。  

   1.PDFファイルへの変換に必要なソフトウエアをインストールする。 
   2.RStudioの設定を変更する。
   3.Sweaveによってテンプレートを作成する。
   4.テンプレートを利用して作ったファイルをPDFファイルへ変換する。
   5.グラフを載せたPDFファイルを作成する。

1.PDFファイルへの変換に必要なソフトウエアをインストールする。
 今回紹介する方法は、PDFファイルに変換する前に、TeXファイルを作成します。そこで、もし使っているPCにLaTeX環境がない場合、あらかじめLaTeXソフトウエアをインストールしておく必要があります。LaTeXを行う環境はいろいろあるのですが、今回は日本語のコメントを文字化けさせずに出力することを考えて、XeTeXというutf-8というエンコーディングをベースにしたTeXエンジンを利用します。XeTeXのオリジナルはMacのOS X用に開発されていて、Linux版やWindows版もあるのですが、今回は同じXeTexエンジンをベースにしたWindows用のソフトMikTeXをインストールします。
また、フォントが特定のOSに依存しないように、IPA明朝フォントをインストールしました。

XeTeXの概略を日本語で説明しているウエブページはこちらです。
MikTeXのダウンロードはこちらです。私はVersion2.9.4813 32bit版を使いました。
IPAフォントのダウンロードはこちらです。


2.RStudioの設定を変更する。
 RStudioのデフォルト設定ではpLaTeXというTeXエンジンを使用するようになっているのでこれを変更します。
メニューの中のToolsからOptionsを選択するとダイアログボックスが出てきます。
Sweaveというアイコンを押すと、Sweaveの設定をみることができます。この中の上から2番目の
Typeset LaTeX into PDF usingという項目をpLaTeX からXeLaTeXに変更します。



3.Sweaveのテンプレートを作成する。
 Markdownファイルを利用した時と同じように、Sweaveのテンプレートを作成します。
RStudioのファイル新規作成のボタンを押すと7種類のファイル形式が選べます。今回はこの中からR Sweaveという形式を選びます。Untitled1という名前のついたウインドウが作成されます。


上の
\documentclass{article}から\begin{document}の間が文書の仕様を書き込むヘッダー部分(Preambleと呼ばれているみたいです)で
\begin{document}から\end{document}の間が文書として表示される本文部分です。
今回は日本語テキストを追加するためにヘッダーと本文にそれぞれコマンドを追加します。


ヘッダー部分への追加
\usepackage{fontspec}
使用しているPC内のフォントを利用するためのパッケージをインポートするコマンドです。
\usepackage{Sweave}
RコードをLaTeXファイルへと翻訳するドライバーをインポートするコマンドです。
\setmonofont[Scale=MatchLowercase]{IPA明朝}
上記のfontspecというパッケージは、Rコード内まで影響が及ばないので、Rコード内に日本語文字があると文字化けしてしまいます。このコマンドはRコード内のフォントを指定して日本語の文字化けを防ぎます。

本文部分への追加
\fontspec{IPA明朝}
本文のフォントを指定するコマンドです。

















4.テンプレートを利用して作ったファイルをPDFファイルへ変換する。

本文にはコメントを書いておきます。
Rコードは<<>>=と@の間に書きます。コードの書き方はRGuiと同じです。



















5.グラフを載せたPDFファイルを作成する。

上の場合と同じように<<>>=と@の間にRコードを記述します。もしも変数名などで日本語文字を使用している場合は、family="Japan1"というオプションを追加すると文字化けせずに表示されます。






















できあがったPDFファイルは以下のようになります。
タイトルを追加したり、文字の色を変えたりするとさらに読みやすくなるかもしれません。








2013年6月5日水曜日

knitr package と RStudio (2)

 では、knitrパッケージとRStudioを利用して、解析のコメント、コマンド、結果、グラフまでを一つのHTMLファイルに表示する方法を見ていきましょう。
(実際にやってみようとしていて、knitrとRStduioをまだインストールしていない方はこちらを見てインストールしておいてください。)

 今回ご紹介する方法はWindows7Pro(64bit), RStudio (32bit) ver.0.97.551 , R ver. 2.5.3, knitr ver. 1.2を使用しています。

 作業の流れは以下の通りです。

   1.Markdownファイルのテンプレートを作成する。

   2.knitrを利用してHTMLを作成する。

1.Markdownファイルのテンプレートを作成する。
RStudioのウィンドウの左上にある新規作成のボタンを押すと全部で7種類のファイル形式が表示されます。今回はこの中の[R Markdown]を選びます。



 すると[Untitled1]という名前のRMarkdownファイルが作成されます。


 既にテンプレートとしてタイトル、コメント、コマンドシンタックスの例が書き込まれています。
ここで大事なポイントは、```{r} と``` で囲まれている部分です。この囲まれている部分(チャンクと呼ばれています)の部分をコマンドと認識するわけです。 二つ目のチャンクのように rの後ろにいろいろなオプションコマンドを足すことができるようです。


2.knitrを利用してHTMLを作成する。
 では、このテンプレートをそのまま利用して、HTMLファイルを作成します。
実はとても簡単で、画面の上の方に[knit HTML]という編み物のアイコンがついたボタンがありますので、これを押すだけです。


ボタンを押すと[Save File]のダイアログボックスが現れますので、保存したい場所に保存したい名前で保存します。保存すると.rmd,.md,.htmlという3つのファイルが保存されているはずです。
そして、プレビューとしてHTMLファイルが表示されます。























 タイトルとコメント部分に加えて、グレーの網掛けになっているコマンドシンタックスと囲みになっている出力部分が表示されます。そして、グラフもプロットコマンドの直後に表示されます。これを保存しておけば、コメント、コマンド、出力、グラフを簡単に見直すことができます。そしてHTMLファイルの良い点として日本語文字をすぐに表示できることがあります。

上のテンプレートを利用して作成した日本語の例をこのブログに張り付けると次のように表示されます。


タイトル

これは R Markdown 文書です。

exampledata = data.frame(実施回 = seq(1, 10), 結果 = seq(from = 100, to = 190, by = 10))
summary(exampledata)
##      実施回           結果    
##  Min.   : 1.00   Min.   :100  
##  1st Qu.: 3.25   1st Qu.:122  
##  Median : 5.50   Median :145  
##  Mean   : 5.50   Mean   :145  
##  3rd Qu.: 7.75   3rd Qu.:168  
##  Max.   :10.00   Max.   :190

グラフを挿入することもできます。

plot(exampledata)

plot of chunk unnamed-chunk-2

 次回は、このような出力をPDFファイルとして保存する方法を紹介します。

2013年6月4日火曜日

knitr package と RStudio (1)

 本日はR言語で分析するときに役立ちそうなツールのご紹介です。
(ちなみにこの話はロチェスター大学のJaeger先生に教わりました。Jaeger Lab.のブログにも
関連する投稿があるので興味のある方はこちらをクリックしてください。)

 あなたは、R言語を利用して分析する場合、出力結果をどのように保存していますか?容易に想像がつくのは、次の2パターンです。

パターンその1
 解析にRGui (R言語と同時にインストールされるインターフェイス)を使ってコンソール上に
コマンドを順番に入力していき、出力結果を表示させながら、分析を進めていく。
最後にコンソール上のすべてのコマンドと出力をコピー&ペーストで他のテキストエディタなどに
貼り付けてテキストファイルとして保存する。

パターンその2
 RScriptエディタを利用して、コマンドシンタックスのみをテキストファイルとして保存しておく。
出力結果が見たい場合は、その都度、コマンドシンタックスの必要個所を読み込んで分析を実施し、コンソール内の出力結果を読む。

 本ブログの管理人である「私」は主にパターンその2の方針を取っていました。しかし、どちらのやり方にも問題があります。

 パターンその1の方針をとると、保存したテキストにコマンドと出力が混在していて、必要な個所を見つけるのに時間がかかります。パターンその2の方針をとると、コマンドシンタックスのみが保存されているので、必要な個所は多少見つけやすくなります。しかし、出力を保存していないので、毎回RGuiを起動して出力を表示させる必要があります。そして、パターン1・2共通の問題としてグラフを別のファイルとして保存しなければならないということがあります。

 こういった問題を見直すと、分析結果を後からでも容易に見返すには、コメント、コマンドシンタックス、出力結果、グラフが一つのファイルに保存されて、かつそれぞれがすぐに区別できるように表示されていること」が大事だと気付きます。そして、これらを実現できるのがknitrというパッケージとRStudioというIDE(統合開発環境)です。

 knitrはR言語のパッケージの一つです。このパッケージが作られる前は、上記のような見やすい出力結果を表示するのにたくさんのパッケージを組み合わせて使う必要があったようなのですが、それらを一つのパッケージで実現することを目的に開発されたと、開発者のウエブページ(http://yihui.name/knitr/)で紹介されています。lme4と同じようにRGuiやCRANのウエブページからダウンロードしてインストールできます。

 RStudioはR言語の開発環境です。knitrパッケージに対応しており、あらかじめRにknitrをインストールしておくと、様々な形式(HTML, LaTeX, MarkDownなど)で出力するためのテンプレートをボタン一つで作ることができます。オープンソースなのでウエブページから無料でダウンロードできます。私はWindows版しか使っていませんが、Linux版やMac版もあるようです。


 では、どうやって使えばいいのか?次回は、HTMLで出力する方法を紹介します。