Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抑制R脚本';s输出_R_Stdout_Stderr_Rscript - Fatal编程技术网

抑制R脚本';s输出

抑制R脚本';s输出,r,stdout,stderr,rscript,R,Stdout,Stderr,Rscript,我正在shebang中使用Rscript创建一个R脚本,并输出到stdout。这可以正常工作,但R会向stderr输出大量日志记录/调试消息(例如,其导入是否正常工作、各种功能的状态、今天的天气如何等等)。如何抑制这种情况 我知道有suppressWarnings和suppressMessages,但这些函数包装了您想要静音的任何函数。我可以将整个脚本封装到一个匿名函数中,然后将其传递给这些函数,但这似乎有点奇怪。(尽管如此,如果这是唯一的办法,那么我想这就是唯一的办法……) 另一种选择是将R脚

我正在shebang中使用
Rscript
创建一个R脚本,并输出到stdout。这可以正常工作,但R会向stderr输出大量日志记录/调试消息(例如,其导入是否正常工作、各种功能的状态、今天的天气如何等等)。如何抑制这种情况

我知道有
suppressWarnings
suppressMessages
,但这些函数包装了您想要静音的任何函数。我可以将整个脚本封装到一个匿名函数中,然后将其传递给这些函数,但这似乎有点奇怪。(尽管如此,如果这是唯一的办法,那么我想这就是唯一的办法……)

另一种选择是将R脚本嵌入bash脚本并使用bash的IO重定向。同样,这似乎是一个迂回的解决方案,但我愿意接受


我只是想知道是否有更好的方法?

如果您想完全抑制所有的stderr消息,请在脚本的开头放上这一行:

sink(file("/dev/null", "w"), type="message")

显然,这无助于调试…

在发出警告的函数上使用
superswarnings
怎么样?或者,重新配置代码以防止警告首先出现?