我正在尝试使用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中抑制此错误消息?
答案 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>
不会在控制台中生成错误消息。