【问题标题】:Stop on error when executing Rmarkdown chunk执行 Rmarkdown 块时停止错误
【发布时间】:2025-12-02 11:40:01
【问题描述】:

我正在使用 RStudio 1.4 和 R 3.6.3。当我在 Rmarkdown 文档中执行单个代码块时(即我按“运行当前块”,或使用 Ctrl+Shift+Enter 快捷方式),它不会因错误而停止。能不能让它停下来?

例如,如果我在一个空的 rmd 文件中运行以下块:

```{r, error=TRUE}
stop()
print("A")
```

我在 RStudio 控制台中得到以下输出:

> stop()
Error: 
> print("A")
[1] "A"

如果error = FALSE,我会得到同样的结果。然而,我注意到让块发送输出内联使它停止错误(但我通常使用输出到控制台)。所以这似乎是一个 RStudio 问题,尽管 Phil 早些时候从问题的标题和标签中删除了该信息。

【问题讨论】:

  • 根据Rmarkdown CookBook Rmarkdown 默认有error=TRUE 所以如果在R块中产生错误它应该自动停止,但是你仍然可以在你的Rmarkdown块选项中显式添加error=TRUE尝试强制争论
  • 这并没有改变我的任何事情。我编辑了我的帖子以提供 MWE。

标签: r error-handling r-markdown


【解决方案1】:

R Markdown Reference CheatSheet 第 2 页所述,块选项 error=TRUE 仅影响 knitted 文档的输出,即它确定编织过程是在代码错误时停止还是通过显示继续输出文档中的错误消息。

在 R Markdown 文档运行代码块时,所有行都被执行,我不知道有任何选项可以更改此行为。

【讨论】: