我想创建一个Rmarkdown文档(pdf或html),它有一些块"已执行"有条件的。我想到的具体情况是,我可能想要一个更详细和文档化的输出版本供同事进行内部审查,并为外部消费者提供更短版本。我可能不想或不需要向客户端显示数据操作步骤,而只需要关键的图形和表格。我也不想制作两个单独的文件,也不想手动指出要显示的内容。
有没有办法在Rmd的开头设置一个开关,表示例如verbose = T将运行所有块或verbose = F切换echo = F(或include = F)?
谢谢。
答案 0 :(得分:17)
knitr选项可以表示为R表达式。每the "output" documentation on the knitr webpage:
注意knitr中的所有选项都可以从R表达式中获取值,这带来了主要手册中引入的条件评估功能。简而言之,
eval=dothis
表示eval的实际值取自全局环境中名为dothis
的变量;通过操纵这个变量,我们可以打开/关闭一批块的评估。
换句话说,如果你写一些块,如:
```{r label}
doNextChunk <- as.logical(rbinom(1,1,.5))
```
```{r conditional, eval = doNextChunk}
"hello world!"
```
答案 1 :(得分:2)
opts_chunk$set()
就是你所追求的。任何“设置”将是后续块的默认值(除非在逐块的基础上被覆盖)
```{r setup}
library(knitr)
opts_chunk$set(eval = TRUE, include= TRUE)
````
然后您可以根据需要进行更改。