在 knitr/Rmarkdown 中抑制来自 heatmap.2 的错误消息

Suppressing error message from heatmap.2 in knitr/Rmarkdown

我正在尝试使用 heatmap.2 生成绘图并使用 Rmarkdown 打印到 pdf_document。

无论我是从控制台还是在 .Rmd 中调用 heatmap.2,绘图都完全符合我的要求。但另外,我收到错误消息:

## Error in plot.new(): figure margins too large

我可以强制 knitr 使用 error=TRUE 继续处理,但仍然打印错误消息。我也设置了

echo=FALSE, warning=FALSE, message=FALSE

我认为这会抑制消息,但事实并非如此。我已经尝试按照 this question 使用 invisible(),但它似乎什么也没做。

我也尝试 "fixing" 通过调整我在 heatmap.2 中的绘图参数来解决错误,但没有成功——当我在 lhei 中的一个专栏太瘦时,它似乎在抱怨.由于情节看起来不错,我并不担心,除非没有其他方法可以抑制此错误消息。

如何在我的 Rmarkdown pdf 中抑制此错误消息?

抑制错误消息的一种非常可靠的方法是将表达式包装在 try(...,silent=TRUE) 中。作为一般示例,如果我们使用以下代码设置绘图布局

plotIDs <- matrix(c(1:16), 4, 4, byrow = T)
layout(plotIDs, widths = c(0.5,1,1,1,1), heights = c(0.5,1,1,1,1))

之后调用 frame() 会产生错误:

R> frame()
Error in frame() : figure margins too large

try 包装它,即

R> try(frame(),silent=TRUE)
R> 

不会在控制台中产生错误消息。