我想使用命令行清除warnings()列表.
我试过没有成功
> rm(last.warning, envir = baseenv())
Error in rm(last.warning, envir = baseenv()) :
cannot remove variables from the base environment
Run Code Online (Sandbox Code Playgroud)
任何的想法?
Jos*_*ich 100
尝试 assign("last.warning", NULL, envir = baseenv())
看看suppressWarnings()是否阻止警告出现.
请在帮助页面中注明警告:
"....没有记录last.warning存储的位置,也没有显示,这可能会发生变化.在R 2.4.0之前,它存储在工作区中,但不再存在......"
小智 5
我同意,我想使用try()并收集try()生成的警告.
我现在的解决方案是
assign("last.warning", NULL, envir = baseenv())
myFit <- try(...)
warned <- warnings()
assign("last.warning", NULL, envir = baseenv())
Run Code Online (Sandbox Code Playgroud)
只是为了强调@Richie Cotton 上面提到的内容(帮助页面现在不再提及 2.4.0,但是):这assign("last.warning", envir = baseenv())确实是不推荐的,尽管它已被这里接受的答案。
相反,您应该使用更强大的错误处理程序工具,特别是对于上面的 @BWMorlan 的情况,您可以使用多次“广告”
tryCatch.WE()实用程序函数,该函数捕获所有警告和错误并在没有错误时提供结果
r <- tryCatch.WE({ ... })
Run Code Online (Sandbox Code Playgroud)
在 R 中使用 demo(error.catching) 来获取函数并查看它的运行情况,或者
file.show(system.file("demo/error.catching.R"))
Run Code Online (Sandbox Code Playgroud)
获取评论来源。