我有一个很长的R脚本会抛出一些警告,我可以忽略它.我可以用
suppressWarnings(expr)
Run Code Online (Sandbox Code Playgroud)
单一陈述.但是如何在全球范围内抑制R中的警告?这有选择吗?
sie*_*ste 217
你可以用
options(warn=-1)
Run Code Online (Sandbox Code Playgroud)
但请注意,全局关闭警告信息可能不是一个好主意.
要重新打开警告,请使用
options(warn=0)
Run Code Online (Sandbox Code Playgroud)
(或任何默认值warn,请参阅此答案)
Fra*_*ano 94
你想要的options(warn=-1).但是,请注意,这warn=0不是最安全的警告级别,不应将其视为当前级别,特别是在脚本或函数中.因此,临时关闭警告的最安全方法是:
oldw <- getOption("warn")
options(warn = -1)
[your "silenced" code]
options(warn = oldw)
Run Code Online (Sandbox Code Playgroud)
小智 27
我现在用C代码中的printf调用替换了这些调用warning。它将在2.17.2版中生效,该版本应于明天晚上发布。然后,您应该能够避免使用suppressWarnings()上述任何其他方法发出警告。
suppressWarnings({ your code })
Run Code Online (Sandbox Code Playgroud)