在交互模式下使用变量防止 Rmd 代码块运行

ssp*_*c3r 7 r rstudio r-markdown

当我编织此示例时.Rmd,第二个块(如预期)不会计算,但如果我交互运行所有块,则第二个块将执行。完成相当于eval=FALSE交互式运行所有块的最干净的方法是什么?

```{r}
RUN <- FALSE
```

```{r eval=RUN}
print("Code ran!")
```
Run Code Online (Sandbox Code Playgroud)

小智 0

有点旧,但这是最接近的答案。到目前为止,块选项仅控制编织期间的代码执行。

但是,您可以通过将代码包装在语句中来控制该代码的执行if()

将以下内容放入您的设置块或将启动控制的任何块中:

RUN <- FALSE
Run Code Online (Sandbox Code Playgroud)

然后使用anif()来控制执行:

if(RUN) {print("Code ran!")}
Run Code Online (Sandbox Code Playgroud)

您还可以使用该interactive()功能来检查您是否处于交互模式。

我希望这有帮助!

另外,还有这个参考: Prevent chunkvaluationinRNotebookinteractive