使用块选项eval=FALSE
可以在RMarkdown文件或R Notebook编译时抑制块评估。有没有办法在RStudio中交互运行文档时进行此操作(即,制作"运行所有块"跳过某些块)?
我在分析开始时有一些块需要一段时间才能运行,后面的部分并不依赖。我希望能够获取代码的重要部分,以便我可以继续编写下游内容,而不必手动逐块地执行,这样我就可以避免在工作区中不需要的部分进一步写作。
我已经设置了rmarkdown文档,其逻辑参数旨在改变代码的哪些部分需要运行 - 我将这些作为控制标志,用于代码实际完成和使用时,但我希望我可以使用这些相同的参数来排除以交互模式运行的块(即类似eval=params$run_part1
)。
答案 0 :(得分:1)
设置knitr::opts_chunk
和knitr::opts_hooks
只能在编织时帮助您,而不是在交互模式下,所以尽管我错了,但我会暂时说您无法控制这种行为还有动态块选项。
作为一种解决方法,您可以使用interactive()
和if
块,以便代码仅在编织时运行。它也可以与您的逻辑参数很好地融合,尽管必须处于括号区块中。
---
title: "R Notebook"
output:
html_document: default
html_notebook: default
---
```{r}
if (!interactive()) {
print("long running code")
}
```
```{r}
print(2)
```
```{r}
print(3)
```
按"运行上面的所有块":
针织: