Conditionally evaluate heading using knitr in .Rmd file

knitr, r

Solution

You can put the heading in an inline R expression:

{r} eval_cell = TRUE


`r if (eval_cell) '# Heading (would like to eval only if eval_cell is TRUE)'`

{r eval = eval_cell} summary(cars)

`

This will become cumbersome if you have large blocks of text/code that need to be conditionally included, in which case you are recommended to put them in a separate child document, say, `child.Rmd`:

# Heading (would like to eval only if eval_cell is TRUE)

{r} summary(cars)

`

Then in the original (parent) document, you just need

{r} eval_cell = TRUE


{r child='child.Rmd', eval=eval_cell}

`

Problem

Is it possible to conditionally evaluate a code chunk and its associated heading using R Markdown and `knitr`? For example, if `eval_cell` is `TRUE` include the chunk and its heading, but don't include either if `eval_cell` is `FALSE`. ```` ```{r} eval_cell = TRUE ``` # Heading (would like to eval only if eval_cell is TRUE) ```{r eval = eval_cell} summary(cars) ``` ````

Original source