2013-04-24 19 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()或上述任何其他方法的警告。

貝恩德