如何在R中暂时抑制警告信息

30

目前我写的是:

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

有更好的解决方案吗?


3
由于options函数返回先前设置的值,因此您可以节省一行代码:warn<-options(warn=-1);foo();options(warn) - nicola
3个回答

45

使用suppressWarnings()

suppressWarnings(foo())

5

你可以使用suppressWarnings()来包装一个表达式(但是在这里,foo()返回的是错误而不是警告)。


0

如果你想跳过多个警告,你可以将你的代码包裹在withCallingHandlers()函数中。

例如:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接