你怎么能总是抑制R中的消息?

rus*_*rce 6 r

我在R中看到的消息最常见的地方是在包的开头.抑制一个函数的消息很容易实现,suppressMessages如下所述:在R中加载包时禁用消息.通过嵌入函数调用{}内部,也可以抑制多行消息生成supressMesssages函数调用.但是,如果你有一个完整的脚本,在这里和那里发生消息,无论如何都要完全禁用它们?我正在寻找像选项(warn = -1)但是对于消息的东西.请注意,sink我不想做我想要的,因为它重定向所有输出...我想保持输出,print但不保持输出message.

Das*_*son 7

在sink中使用type参数

# Open a file to send messages to
zz <- file("messages.Rout", open = "wt")
# Divert messages to that file
sink(zz, type = "message")
message("not gonna show up in console")
Run Code Online (Sandbox Code Playgroud)

  • @russellpierce 实际上,找到了答案。您需要调用 `sink(type="message")`,而不仅仅是 `sink()`。查看我链接的 SO 帖子中接受的答案以获取更多详细信息。 (2认同)