rmarkdown块中的条件“echo”(或eval或include)

rmarkdown块中的条件“echo”(或eval或include),r,knitr,r-markdown,R,Knitr,R Markdown,我想创建一个Rmarkdown文档(pdf或html),其中有一些块是有条件地“执行”的。我考虑的具体情况是,我可能需要一个更详细、文档化的输出版本供同事内部审阅,而外部使用者则需要一个更短的版本。我可能不想或不需要向客户机显示数据操作步骤,而只需要显示关键图形和表。我也不想制作两个单独的文档,也不想手动指示要显示什么或不显示什么 是否有一种方法可以在Rmd的开头设置一个开关,该开关指示将运行所有块的verbose=T或切换echo=F(或include=F)的verbose=F 谢谢。选择ch

我想创建一个Rmarkdown文档(pdf或html),其中有一些块是有条件地“执行”的。我考虑的具体情况是,我可能需要一个更详细、文档化的输出版本供同事内部审阅,而外部使用者则需要一个更短的版本。我可能不想或不需要向客户机显示数据操作步骤,而只需要显示关键图形和表。我也不想制作两个单独的文档,也不想手动指示要显示什么或不显示什么

是否有一种方法可以在Rmd的开头设置一个开关,该开关指示将运行所有块的verbose=T或切换echo=F(或include=F)的verbose=F

谢谢。

选择chunk$set()
就是您想要的。任何“设置”都将是后续块的默认值(除非逐块覆盖)


然后,您可以根据需要进行更改。

knitr选项可以表示为R表达式。Per:

注:knitr中的所有选项都可以从R表达式中获取值,这带来了主手册中介绍的条件求值功能。简而言之,
eval=dothis
表示eval的实际值取自全局环境中名为
dothis
的变量;通过操纵这个变量,我们可以打开/关闭对一批块的评估

换句话说,如果你写一些块,比如:

```{r label}
doNextChunk <- as.logical(rbinom(1,1,.5))
```

```{r conditional, eval = doNextChunk}
"hello world!"
```
`{r标签}

别担心这会让我走上正轨。我正在设置一个变量
draft是否也可以以这种方式更改块标签?另外,是否可以使用render将参数作为参数传递(即,使用render时将doNextChunk指定为参数)?
```{r label}
doNextChunk <- as.logical(rbinom(1,1,.5))
```

```{r conditional, eval = doNextChunk}
"hello world!"
```