抑制R脚本';s输出
我正在shebang中使用抑制R脚本';s输出,r,stdout,stderr,rscript,R,Stdout,Stderr,Rscript,我正在shebang中使用Rscript创建一个R脚本,并输出到stdout。这可以正常工作,但R会向stderr输出大量日志记录/调试消息(例如,其导入是否正常工作、各种功能的状态、今天的天气如何等等)。如何抑制这种情况 我知道有suppressWarnings和suppressMessages,但这些函数包装了您想要静音的任何函数。我可以将整个脚本封装到一个匿名函数中,然后将其传递给这些函数,但这似乎有点奇怪。(尽管如此,如果这是唯一的办法,那么我想这就是唯一的办法……) 另一种选择是将R脚
Rscript
创建一个R脚本,并输出到stdout。这可以正常工作,但R会向stderr输出大量日志记录/调试消息(例如,其导入是否正常工作、各种功能的状态、今天的天气如何等等)。如何抑制这种情况
我知道有suppressWarnings
和suppressMessages
,但这些函数包装了您想要静音的任何函数。我可以将整个脚本封装到一个匿名函数中,然后将其传递给这些函数,但这似乎有点奇怪。(尽管如此,如果这是唯一的办法,那么我想这就是唯一的办法……)
另一种选择是将R脚本嵌入bash脚本并使用bash的IO重定向。同样,这似乎是一个迂回的解决方案,但我愿意接受
我只是想知道是否有更好的方法?如果您想完全抑制所有的stderr消息,请在脚本的开头放上这一行:
sink(file("/dev/null", "w"), type="message")
显然,这无助于调试…在发出警告的函数上使用
superswarnings
怎么样?或者,重新配置代码以防止警告首先出现?