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

第3回 レポつく自由自在~R Markdown基礎文法最速マスター

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

第6位:opts.label

ひな あー,もうイヤ~

  ?

ひな このレポート,同じオプションのコードチャンクがいっぱいあるんだけど,いちいち書くの超めんど~。これならワードの方がマシ!!

  それは確かに面倒ね。オプション一括指定じゃダメなの?

ひな それがダメなのよ~,大きいグラフと小さいグラフがたくさんあるから,チャンクごとに指定しないといけないの。

  そんなときにはチャンクオプションテンプレートの出番よ。

ひな なにそれ~

  いい? まずセットアップチャンクとかで,テンプレートを定義するの。

```{r setup, include=FALSE}
library(knitr)
opts_template$set(
  fig_small = list(out.width = 200, out.height = 200), # 小さいグラフ
  fig_large = list(out.width = 500, out.height = 500)  # 大きいグラフ
  )
```

ひな それからそれから~?

  それから,コードチャンクではopts.labelオプションでテンプレート名を指定するのよ。

```{r fig1, opts.label="fig_small"}
curve(sin(x),-10,10)
```

```{r fig2, opts.label="fig_large"}
plot(iris)
```

```{r fig3, opts.label="fig_small"}
curve(cos(x),-10,10)
```

ひな 簡単ね!

  そうでしょ~。そして,これがサンプル出力よ!! どう?

ひな すごい! これなら何回も書かなくてすむわ~。あ,あと,私気づいちゃったんだけど,テンプレートを使えば,グラフの大きさ変えたいときはセットアップチャンクの値を変えるだけでいいんじゃないの,これ?

  よく気づいたね~。だから間違いも起こりにくくなるし,どんだけ手間省けるんだこれ,って感じよね。Cの#defineマクロみたいなものよ。

第5位:warningerrormessage

ひな パッケージ読み込むとたまにメッセージ表示されることあるじゃない。レポートにマジ邪魔なんですけど~

  そんなときはmessage=FALSEよ。

ひな 瞬殺ね……

  warning=FALSEなら警告が非表示よ。あと,error=TRUEならそのチャンクのエラーを出力して,その後のチャンクは実行されるの。error=FALSEならエラー時点で変換処理が止まるわ。デフォルトは全部TRUEよ。

第4位:fig.widthfig.heightout.widthout.height

ひな なにこれグラフちっさ!!

  あ~ほんとだ,これじゃ,パパ,キレるわ~

ひな レポートのグラフ大きくするの,どうしたらいいの?

  out.widthout.heightでレポートのグラフの大きさを指定できるわよ。このオプションの単位は,レポートのフォーマットによって異なるわ。HTMLのレポートならピクセル。out.width=800, out.height=800とかすれば800ピクセル四方の領域にグラフが拡大縮小されて表示されるっていうこと。PDFのレポートならLaTeXの単位が使えるわ。out.width=".8\\linewidth"とかね。あなたLaTeX知ってる?

ひな もちろん! 毎晩,絵本がわりに美文書6版眺めてるの!

  美文書には私もお世話になったわ,5版だったけど。これ,ほんとに役に立つわよね。あれ? この本,技術評論社なのね~さすがだわ~

ひな ところでおねえちゃん,fig.widthout.widthってなんか違うの?

  fig.widthfig.heightはグラフを描画する画像ファイルとかPDFファイルのサイズを指定するのよ。単位はインチ。例えばHTMLレポートを作る場合,fig.width=4, dpi=150なら,幅600ピクセルのPNGファイルがこっそりできるの。dpiはdot per inchの略で,1インチあたりのピクセル数ね。で,このファイルがout.widthout.heightで指定された領域に拡大縮小されて表示されるってわけ。要するに,fig.widthfig.heightはRがグラフを作成するときのサイズ,out.widthout.heightはHTMLとかPDFに出力するときのサイズだと思っておけばいいわ。サンプルおいておくわね。わかりにくくてゴメンね~

ひな 大丈夫,完璧。R Markdownってホントにカユいところに手が届くッて感じだわ。作者,きっとモテるわね。

  それな

著者プロフィール

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

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