r - 当错误消息被修改为以红色打印时,将错误消息折叠成一个 block

标签 r r-markdown knitr

当错误消息本身被修改为以红色打印时,如何在 RMarkdown 中获取打印的错误消息以折叠成单个 block ?

在此示例中 collapse = T按预期工作。

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, collapse = TRUE)
```

```{r error=T}
x <- c(1,2,3,4,5)
x * 10
X * 10
```

在此示例中,我将错误消息修改为红色格式(基于此 answer )。但随后它不会与其余部分一起崩溃:
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, collapse = TRUE)
knitr::knit_hooks$set(error = function(x, options) {
  paste0("<pre style=\"color: red;\"><code>", x, "</code></pre>")
})
```

```{r error=T}
x <- c(1,2,3,4,5)
x * 10
X * 10
```  

我试图指定 collapse = T再次在特定的代码块中,但这也不起作用:
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, collapse = TRUE)
knitr::knit_hooks$set(error = function(x, options) {
  paste0("<pre style=\"color: red;\"><code>", x, "</code></pre>")
})
```

```{r error=T, collapse = T}
x <- c(1,2,3,4,5)
x * 10
X * 10
```   

最佳答案

用电流development version of knitr ( remotes::install_github('yihui/knitr') ),您可以指定 CSS class for error messages .这是一个例子:

```{r setup, include=FALSE}
knitr::opts_chunk$set(collapse = TRUE)
```

```{css, echo=FALSE}
.red { 
  color: red;
  padding-top: 0;
  margin-top: -15px;
  border-top-color: #f5f5f5;
}
```


```{r error=T, class.error='red'}
x <- c(1,2,3,4,5)
x * 10
X * 10
```

输出:

Custom class for errors in knitr

关于r - 当错误消息被修改为以红色打印时,将错误消息折叠成一个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54976794/

相关文章:

r - 如何在 R 中将 "HH:MM:SS AM/PM"转换为 24 小时格式?

r - 将 for 循环转换为 foreach 循环

R 3d 绘图的旋转在 knit 和 webgl 中无法正常工作

r - 如何检查 session 中是否存在 react 性数据帧,如果不存在,则将列表中的值设置为 'NA'

r - 使用 Xaringan 时 custom.css 消失

R,使用 Knitr 查看 HTML 中的表格

r - 在knitr中打印漂亮的交叉表

r - 在 shapefile 内创建网格

r - 如何仅提供R Markdown 引用中的年份?

r - 应用以创建不重叠的独特排列