R:如何清除所有警告

时间:2011-04-20 03:11:40

标签: r warnings

我想使用命令行清除warnings()列表。

我尝试过没有成功

> rm(last.warning, envir = baseenv())  
Error in rm(last.warning, envir = baseenv()) :   
cannot remove variables from the base environment

任何想法?

4 个答案:

答案 0 :(得分:89)

尝试assign("last.warning", NULL, envir = baseenv())

答案 1 :(得分:6)

请查看suppressWarnings()以停止显示警告。

请在help page for warnings中注明:

  

“....它没有记录在哪里   last.warning既存储也不存储   可见,这是受制于的   更改。在R 2.4.0之前,它被存储了   在工作区,但不再......“

答案 2 :(得分:5)

我同意,我想使用try()并收集try()生成的警告。

我现在的解决方案是

assign("last.warning", NULL, envir = baseenv())
    myFit  <- try(...)
    warned <- warnings()
assign("last.warning", NULL, envir = baseenv())

答案 3 :(得分:2)

只是为了强调上面@Richie Cotton 提到的内容(帮助页面现在不再提及 2.4.0,但是):尽管此处已接受此答案,但确实不建议使用 assign("last.warning", envir = baseenv())

相反,您应该使用更强大的错误处理程序工具,特别是对于上面@BWMorlan 的情况,您可以使用 - 多次“广告” tryCatch.WE() 实用函数,可捕获所有警告和错误并在没有错误时提供结果

r <- tryCatch.WE({ ... })

在 R 中使用 demo(error.catching) 来获取函数并查看它的运行情况, 或

file.show(system.file("demo/error.catching.R"))

获取评论来源。