2013-04-24 15 views
106

我有一个很长的R脚本会引发一些警告,我可以忽略它。 我可以使用如何在R脚本中全局压制警告

​​

单个语句。但是,我怎样才能在全球范围内抑制R的警告?有没有这个选项?

回答

141

你可以使用

options(warn=-1) 

但请注意,在全球关闭警告消息可能不是一个好主意。

要打开警告回来,用

options(warn=0) 

(或任何你默认为warn,见this answer

+23

(+1)为“可能不是一个好主意” – Roland 2013-04-24 14:23:51

+1

这工作,但弗朗西斯·纳波利塔诺从2015年9月22日的做法,是更安全,更全球适用的方法。 – 2015-10-23 18:13:29

7

看一看?options和使用warn

options(warn = -1) 
55

你想options(warn=-1)。但是,请注意warn=0不是最安全的警告级别,不应将其假定为当前级别,特别是在脚本或函数中。因此临时关闭警告最安全的办法是:

oldw <- getOption("warn") 
options(warn = -1) 

[your "silenced" code] 

options(warn = oldw) 
3

我已经取代了printf -calls通过调用在C代码“warning”了。它将在明天晚上发布的2.17.2版本中生效。那么你应该能够避免使用suppressWarnings()或上述任何其他方法的警告。

贝恩德