2010-03-23 85 views
13

我想通过命令提示符运行我的R脚本时,在R中抑制输出。如何抑制输出

我尝试了很多选项,包括--slave--vanilla。这些选项减少了输出文本的数量。

我也试图管输出到NUL但这并没有帮助。

+1

也许R是打印到stderr如果'> NUL'没有按”帮助。尝试追加'2>&1'。 – Joey 2010-03-23 17:10:00

回答

28

help(sink)要做到这一点。在Unix上我会做

sink("/dev/null") # now suppresses 
....     # do stuff 
sink()    # to undo prior suppression, back to normal now 

和Windows当量(以尖端的最帽子约翰内斯)是

sink("NUL") 
.... 
sink() 
+3

通常Windows的等价物是'NUL'。但是,很可能是'CreateFile',&c。将无法打开它,并且它在shell中主要是特殊的功能,使其工作。 – Joey 2010-03-23 17:08:26

+0

谢谢 - 我编辑了相应的答案(经过测试,确实以'NUL'正确引用的方式工作)。 – 2010-03-23 17:32:37

+1

嗨@DirkEddelbuettel,我注意到这不适用于从try()部分转储错误,sink(file =“NUL”,type =“message”)抱怨“NUL”不是文件连接,在这些情况下需要使用try(stop(“error msg”),silent = TRUE),以使其按预期工作。只是想添加到您的答案,以防其他人绊倒这个答案。 – 2013-03-23 16:04:20