Rmarkdown Error=TRUE 输出打印在 HTML 输出上

Rmardown Error=TRUE output printed on HTML output

```{r, error=TRUE, echo=FALSE, message=FALSE, results='hide', warning=FALSE}
    abc1 <- data.frame(content(xyz)$test[[1]]$text)
    abc2 <- data.frame(content(xyz)$test[[2]]$text)
    abc3 <- data.frame(content(xyz)$test[[3]]$text)
    abc4 <- data.frame(content(xyz)$test[[4]]$text)
    abc5 <- data.frame(content(xyz)$test[[5]]$text)
```

我已经在上面提到了我的 rmarkdown 中的 r 块。我在 r 块中创建数据帧 abc1、abc2、abc3...abc23。问题是我得到一个 "OUT OF SUBSCRIPTION BOUND ERROR",因为 "test[[4]]$text" 测试列表的第 4 个元素不存在,编译过程停止,最终输出打印在 HTML 输出中。

通过使error=TRUE,我可以避免编译停止的问题。编译完成,但最终结果是 ERROR MESSAGES 打印在最终的 HTML 输出中。有没有办法避免在最终 HTML 文档中显示或删除错误消息。我试过使用 result='hide' 但似乎没有解决这个问题。我应该如何使用 rmarkdown 获得干净的 HTML 输出而没有错误消息?

这是打印在最终 HTML 输出上的错误消息,我试图使用 r 块选项摆脱它:

## Error in content(xyz)$test[[4]]: subscript out of bounds

我没有在文档中找到抑制错误消息的块选项。但是您可以使用 R 函数 try() 来实现:

```{r, echo=FALSE}
    try({
        abc1 <- data.frame(content(xyz)$test[[1]]$text)
        abc2 <- data.frame(content(xyz)$test[[2]]$text)
        abc3 <- data.frame(content(xyz)$test[[3]]$text)
        abc4 <- data.frame(content(xyz)$test[[4]]$text)
        abc5 <- data.frame(content(xyz)$test[[5]]$text)
    }, silent = TRUE)
```

根据文档

try evaluates an expression and traps any errors that occur during the evaluation.

使用参数silent,您可以控制是否打印错误信息。但是,HTML 文件似乎不包含独立于 silent.

值的错误消息

这也意味着不需要块选项 error=TRUE 因为不再有错误。在当前情况下,也不需要大多数其他选项,因为该块不会产生任何输出、消息或警告。