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

时间:2015-01-29 16:43:51

标签: r heatmap gplots

我正在尝试使用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(),但似乎什么也没做。

我也尝试通过在heatmap.2中调整我的绘图参数来“修复”错误但没有成功 - 当我lhei中的一个列太瘦时,似乎会抱怨。由于情节看起来不错,除非没有其他方法可以抑制此错误消息,否则我并不担心。

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

1 个答案:

答案 0 :(得分:2)

一种非常强大的抑制错误消息的方法是将表达式包装在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> 

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