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.