我想使用命令行清除warnings()列表。
我尝试过没有成功
> rm(last.warning, envir = baseenv())
Error in rm(last.warning, envir = baseenv()) :
cannot remove variables from the base environment
任何想法?
答案 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"))
获取评论来源。