【发布时间】:2019-10-04 13:19:58
【问题描述】:
我有一个包,其中包含一堆生成 ggplot2 对象的函数。最近,ggplot2 添加了一个更新,它给出了一条消息:
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
我知道为什么 ggplot2 会这么说,但我不需要每次运行情节时都听到它(这让我的用户感到困惑,因为他们认为他们做错了什么)。我知道我可以通过在suppressMessages 中包装一个打印语句来抑制消息,但我不想print 一个情节,我想return 它。如果我print 它,它会显示情节,即使我不想显示它。
有什么想法吗?这是一个最小的工作示例。
f = function(y,x,data){
p = ggplot(data, aes_string(x,y)) + geom_point() + geom_smooth(se=F)
#suppressMessages(return(p)) ### doesn't work
suppressMessages(print(p)) ### works, but I don't want to PRINT it
}
data(iris)
head(iris)
f("Sepal.Length", "Sepal.Width", iris)
【问题讨论】:
-
也许设置
method = 'loess'而不是默认值? -
消息只是变短了。
-
该消息仅在绘图时生成,因此您可以将
suppressMessages包裹在您对f的调用周围。值得注意的是 - 如果您分配f的结果(即,它不是隐式打印),则不会出现警告 -
对不起,消息仍然存在,即使在 se=F 时使用 method="loess"。
标签: r ggplot2 suppressmessage