Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Conditionally evaluate heading using knitr in .Rmd file

Tags:

r

knitr

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)
```
like image 445
matt_k Avatar asked Jul 13 '14 20:07

matt_k


1 Answers

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}
```
like image 110
Yihui Xie Avatar answered Oct 01 '22 20:10

Yihui Xie