我想在我的RMD文件中排除很多代码块,并且想要在之前使用eval = FALSE
然后eval = TRUE
设置全局选项。但这不起作用。
这是一个玩具示例:
---
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, eval = FALSE)
```
## will not be executed because global option `eval = FALSE`
```{r}
x+y
```
```{r setup II, include=FALSE}
knitr::opts_chunk$set(eval = TRUE, echo = TRUE)
```
## Should give `2` in final document, because eval = TRUE
## NOT working as expected
```{r}
1+1
```
## This is working as expected
```{r, eval = TRUE}
1+1
```
结果如下:
这是一个错误还是一个功能?对于我的观点,这与反直觉相反......
答案 0 :(得分:3)
这不是错误或功能,但是预期。您在第一个代码块中设置eval = FALSE
,这意味着不会评估第二个代码块,因此根本不执行knitr::opts_chunk$set(eval = TRUE, echo = TRUE)
。然后eval
对于第三个代码块仍为FALSE
。
您需要在第二个代码块上设置eval = TRUE
:
```{r setup II, include=FALSE, eval=TRUE}
knitr::opts_chunk$set(eval = TRUE, echo = TRUE)
```