在R中使用melt()函数,如何隐藏警告信息?

7
我正在对一些数据进行融合,但不想向melt函数提供id.var参数。虽然数据可以成功融合,但我会收到下面的错误信息:
"No id variables; using all as measure variables"

有方法可以防止该消息弹出吗?或者有办法像 id.var=default 这样说吗?这里是一个使用 dplyr 的 iris 示例:
> dt <- iris %>% summarize_at(c("Sepal.Length","Sepal.Width"), funs(mean))
> dt
  Sepal.Length Sepal.Width
1     5.843333    3.057333
> melt(dt, value.name="Mean")
No id variables; using all as measure variables
      variable     Mean
1 Sepal.Length 5.843333
2  Sepal.Width 3.057333

另外,有没有一种方法可以告诉函数不要打印警告消息或类似的东西?谢谢!


3
当寻求帮助时,你应该包括一个简单的可再现的示例,其中包含可用于测试和验证可能解决方案的样本输入和期望输出。 - MrFlick
7
еңЁиҝҷз§Қжғ…еҶөдёӢдҪҝз”Ёid.vars=NULLгҖӮ - user20650
2
我认为虽然那个问题在那个主题中有所涉及,但从那个帖子问题的标题上并不明显。我确实搜索过隐藏来自melt和特定消息输出的方法之类的内容,但没有找到任何东西,所以直接提出了问题。我认为对于像我这样寻找如何特别解决此问题的人来说,这篇文章将更好地被索引。 - Adam Price
3
我认为@user20650的回答更好。那是正确使用melt的方法,因为在某些情况下,melt将自动选择一个ID变量。 - alan ocallaghan
1
@user20650 当然,我很乐意帮忙。 - Adam Price
显示剩余7条评论
1个回答

12

严格来说,这是一条消息,而不是警告(见?message?warning)。您可以使用suppressMessages来抑制消息。

suppressMessages({
  reshape2::melt(head(mtcars))
})

对于 melt,你可以使用 id.vars = NULL。(感谢@user20650)


有人能进一步解释如何做吗?我填写了:suppressMessages({ reshape2::melt(id.vars = NULL)) }),但它不起作用。 - B.Quaink

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接