11.1 チャンクオプションに変数を使う

大抵の場合, 例えば fig.width = 6 のようにチャンクオプションは定数をとりますが, 簡単であるか複雑であるかに関わらず, 任意の R コードからの値をとることもできます. 特殊なケースはチャンクオプションに通せる変数です. 変数もまた R コードであることに注意してください. 例えば文書の冒頭で図の幅を変数で定義して, その変数を後の他のコードチャンクで使えば, それ以降の幅を簡単に変更できます.

```{r}
my_width <- 7
```

```{r, fig.width=my_width}
plot(cars)
```

以下はチャンクオプショで if-else 文を使う例です.

```{r}
fig_small <- FALSE  # 大きい図に対しては TRUE に変更
width_small <- 4
width_large <- 8
```

```{r, fig.width=if (fig_small) width_small else width_large}
plot(cars)
```

さらに以下にもう1つの例として, 必要なパッケージが使用可能な場合のみコードチャンクを評価する (つまり実行する) ものを示します.

```{r, eval=require('leaflet')}
library(leaflet)
leaflet() %>% addTiles()
```

意図が分からない方のために説明しますと, require('package') はパッケージが使用可能なら TRUE を返し, そうでないなら FALSE を返します.