如何暂时压制R中的警告

时间:2016-04-07 11:15:09

标签: r

目前我写道:

warn = getOption("warn")
options(warn=-1)
foo()
options(warn=warn)

有更好的解决方案吗?

3 个答案:

答案 0 :(得分:4)

使用suppressWarnings()

suppressWarnings(foo())

答案 1 :(得分:2)

您将表达式包装在suppressWarnings()中(但此处foo()会返回错误,而不是警告)。

答案 2 :(得分:0)

如果您想跳过多个警告,可以将代码包装到withCallingHandlers()函数中。

例如:

withCallingHandlers({
    print("prt1")
    warning("warn1")
    message("msg1")
    print("prt2")
    warning("warn2")
    message("msg2")
},
warning = function() { return(NULL) })

通过在message = function() { return(NULL) })函数中添加withCallingHandlers()作为额外参数,也可以省略messages()。 此外,有一个参数传递你的错误函数处理程序,但是,当出现错误时,它会进入错误处理函数,并且不会在括号中执行剩余的代码。