'sqr'atch-note

ちりはつもれど ちりぬるを

knitr のチャンク設定(個人的)まとめ

knitr を利用してレポートを作っているので、そのためのまとめ。

グローバル設定

一括で設定しておいて、必要に応じて個々のチャンクで設定し直すという立場。図のキャプションだけは、毎回入れるのでfig.capなんて打つのが面倒なのでcapとエイリアスを作る。

<<r global_option, include=FALSE, echo=FALSE>>=
opts_chunk$set(fig.width=7, fig.height=7, fig.align='center', fig.pos='htbp', echo=FALSE, out.width='10cm',comment=NA, message=FALSE, result='hide',size = 'footnotesize')

set_alias(cap="fig.cap")
@

個々のチャンクにおける設定

図を2枚並べる

図を2枚並列に並べるときは、図の縦横比を1:2にして、出力時の幅をテキスト幅と同じにする。そうすれば、あまり図が小さくならなくて良くなる。

<<r 2figure, figure.width=14, out.width='\\textwidth'>>=
x <- rnorm(100, 0, 1)
par(mfrow=c(1, 2))
plot(x)
hist(x)
@

図を4枚並べる

この場合は、出力時の幅をテキスト幅と同じにするだけで良い。作図デバイスの余白については調整が必要かもしれない。

<<r 4figure, out.width='\\textwidth'>>=
x <- rnorm(100, 0, 1)
par(mfrow=c(2, 2), mar = c(5.5, 6, 4.1, 2))
plot(x)
hist(x)
boxplot(x)
qqnorm(x)
@

チャンクオプション

オプション 説明
echo=FALSE Rのコードを載せるかどうかのオプション。
results='asis' 結果をどういう風に乗せるか。asis, markup, hide