11.1 Use variables in chunk options

Usually chunk options take constant values (e.g., fig.width = 6), but they can actually take values from arbitrary R expressions, no matter how simple or complicated the expressions are. A special case is a variable passed to a chunk option (note that a variable is also an R expression). For example, you can define a figure width in a variable in the beginning of a document, and use it later in other code chunks, so you will be able to easily change the width in the future:

{r}
my_width <- 7


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


Below is an example of using an if-else statement in a chunk option:

{r}
fig_small <- FALSE  # change to TRUE for larger figures
width_small <- 4
width_large <- 8


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


And we have one more example below in which we evaluate (i.e., execute) a code chunk only if a required package is available:

{r, eval=require('leaflet')}
library(leaflet)

In case you do not know it, require('package') returns TRUE if the package is available (and FALSE if not).