[R] How to flag those iterations which yield a warning?

William Dunlap wdunlap at tibco.com
Fri Feb 18 17:57:46 CET 2011


If you have a function that may produce warnings you
can use withCallingHandlers() to make a new function
that does what the original does but adds some
contextual information to the usual warning report.
E.g.,

addWarningReporting <- function(FUN) {
   force(FUN)
   function(args) {
      withCallingHandlers(
         FUN(args),
         warning=function(w){
             cat("WARNING: ")
             print(w)
             cat("    args=", deparse(args), "\n")
             invokeRestart("muffleWarning")}
      )
   }
}

> for(i in -2:2) log(i)
Warning messages:
1: In log(i) : NaNs produced
2: In log(i) : NaNs produced
> myLog <- addWarningReporting(log)
> for(i in -2:2) myLog(i)
WARNING: <simpleWarning in FUN(args): NaNs produced>
    args= -2L
WARNING: <simpleWarning in FUN(args): NaNs produced>
    args= -1L

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> -----Original Message-----
> From: r-help-bounces at r-project.org 
> [mailto:r-help-bounces at r-project.org] On Behalf Of Ravi Varadhan
> Sent: Friday, February 18, 2011 8:29 AM
> To: r-help at r-project.org
> Subject: [R] How to flag those iterations which yield a warning?
> 
> Hi,
> 
> I am running a simulation study with the survival::coxph.  
> Some of the simulations result in problematic fits due to 
> flat partial likelihood. So, you get the warning message:
> 
> Warning message:
> In fitter(X, Y, strats, offset, init, control, weights = 
> weights,  ... :
>   Loglik converged before variable  2 ; beta may be infinite. 
> 
> How can I keep track of the simulations which yield any kind 
> of warning message, so that I can appropriately handle them 
> in the post-processing of simulation results?
> 
> I know that `try' can be used to capture errors, but I would 
> like to capture and detect warnings.
> 
> Any pointers would be appreciated.
> 
> Thanks,
> Ravi.
> ____________________________________________________________________
> 
> Ravi Varadhan, Ph.D.
> Assistant Professor,
> Division of Geriatric Medicine and Gerontology
> School of Medicine
> Johns Hopkins University
> 
> Ph. (410) 502-2619
> email: rvaradhan at jhmi.edu
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 



More information about the R-help mailing list