【问题标题】:how do I suppress the message of a function in an R script? [duplicate]如何抑制 R 脚本中函数的消息? [复制]
【发布时间】:2014-10-17 22:45:29
【问题描述】:

之前有人问过类似的问题:

How do I suppress this output?

但是,该问题仅适用于 Rmarkdown 代码块。在以下情况下,我创建了一个仅包含以下内容的脚本:

library(UsingR)

这次我将文件保存为名为@9​​87654324@ 的Rscript。但是,我正在使用 Compile Notebook 图标编译为 html 文档。结果输出如图所示:

在上面给出的链接上的上一个问题中,答案是:

```{r message=FALSE}
library(UsingR)
```

这仅适用于 Rmarkdown 代码块。

如何更一般地抑制函数消息,例如library() 函数的输出?

【问题讨论】:

  • 没有。第一次发生在使用 knitHTML 编译的 RMarkdown 文件中。这发生在 R 脚本中,单击 RStudio 中的 Compile Notebook 图标。相似,但不同。
  • 无关紧要。这是关于抑制来自library() 的输出,这个问题已经回答了好几次了。
  • 我们是否在重新提出 七岁 的答案?在此期间没有发生其他值得争论的事情吗?
  • (抱歉删除我的评论)我现在明白你的意思了。虽然我确实认为这个问题足够不同,可以删除重复的标志。我之所以提出它,是因为所提供的问题和答案与我目前的情况有关,而链接的 QnA 则不是。我只是想提供帮助。 -- 我也意识到这已经在其他地方得到了回答,但我认为这里的答案是正确的,其他问题的相同答案不太相关。

标签: r rscript


【解决方案1】:

您可以将调用更改为library,使其不打印任何输出:

library(UsingR, quietly = TRUE, warn.conflicts = FALSE)

更一般地,您可以通过将表达式包装在 suppressMessages 中来抑制来自表达式的消息:

suppressMessages(expr)

【讨论】:

  • 库(UsingR,quietly=TRUE,warn.conflicts=FALSE)不起作用。得到相同的输出。 suppressMessages(library(UsingR)) 工作。谢谢。
  • @Jonathan 这非常有用,谢谢。特别是我有一个需要调用数千次的函数,每次都会打印一个可能会阻塞控制台的冗余 message()。
猜你喜欢
  • 2018-08-23
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
相关资源
最近更新 更多