[Rd] Capturing all warnings (with messages)

Jon Clayden j.clayden at ucl.ac.uk
Wed Feb 4 13:59:59 CET 2009

Dear all,

For an open-source project that I'm working on (1), which uses R for  
all its heavy lifting but includes a wrapper shell script, I was  
hoping to find a way to capture all warnings (and, in fact, errors  
too), and handle them in my own way. I realise I can do this for a  
single expression using something like:

 > f <- function(w) print(w$message)
 > withCallingHandlers(warning("Test"),warning=f)
[1] "Test"
Warning message:
In withCallingHandlers(warning("Test"), warning = f) : Test

But I would like to capture all warnings, globally. The  
"warning.expression" option doesn't seem to allow an argument, and I  
can't seem to use "last.warning" to get at the message either:

 > g <- function() print(last.warning$message)
 > options(warning.expression=quote(g()))
 > warning("Test2")

Could anyone tell me whether there's a way to do this, please? An old  
thread on this topic seemed to go unresolved (2), and I've skimmed  
RNEWS and I don't see anything about this since then.

 > sessionInfo()
R version 2.8.1 (2008-12-22)


attached base packages:
[1] stats     graphics  grDevices utils     datasets  splines   methods
[8] base

other attached packages:
[1] tractor.session_1.0.0   tractor.base_1.0.3      tractor.nt_1.0.2

loaded via a namespace (and not attached):
[1] tools_2.8.1


(1) http://code.google.com/p/tractor/
(2) http://finzi.psych.upenn.edu/R/Rhelp02/archive/61872.html

Jonathan D. Clayden, Ph.D.
Research Fellow
Radiology and Physics Unit
UCL Institute of Child Health
30 Guilford Street
United Kingdom

t | +44 (0)20 7905 2708
f | +44 (0)20 7905 2358
w | www.homepages.ucl.ac.uk/~sejjjd2/

More information about the R-devel mailing list