R: how to clear all warnings
I would like to clear the warnings() list using a command line.
I have tried with no success
> rm(last.warning, envir = baseenv())
Error in rm(last.warning, envir = baseenv()) :
cannot remove variables from the base environment
any idea?
Try assign("last.warning", NULL, envir = baseenv())
Take a look at suppressWarnings()
to stop the warnings from showing up.
Notice in the help page for warnings that it says:
"....It is undocumented where last.warning is stored nor that it is visible, and this is subject to change. Prior to R 2.4.0 it was stored in the workspace, but no longer...."
I agree, I want to use a try() and gather up just the warnings generated by that try().
My solution for now is
assign("last.warning", NULL, envir = baseenv())
myFit <- try(...)
warned <- warnings()
assign("last.warning", NULL, envir = baseenv())
Just to emphasize what @Richie Cotton mentioned above (the help page now no longer mentions 2.4.0, but): This is assign("last.warning", envir = baseenv())
is really not recommended even though it's been the accepted answer here.
Rather, you should use the much more powerful error handler tools, notably for @BWMorlan's case above, you could use the - several times "advertized"
tryCatch.WE()
utility function which catches all warnings and errors and provides results when not error
r <- tryCatch.WE({ ... })
using demo(error.catching)
in R to get the function and see it in action,
or
file.show(system.file("demo/error.catching.R"))
to get the commented source.