Basically you run you each iteration of your code inside try() and then test to see if it's class vector includes "try-error", ... then you can do something with the result or return NA. This may makeit more useful because I return the results at each iteration if there was no error:

sapply(test, function(x)  if( "try-error" %in% class(try( Z <- exp(test[test[x:1]] ) ) ) ){NA}else{Z} )


On Sep 18, 2012, at 5:38 PM, John Sorkin wrote:

> David,
> Thank you. I will study your code so I can understand your suggestion.
> Thanks,
> John
> 
>  
> John David Sorkin M.D., Ph.D.
> Chief, Biostatistics and Informatics
> University of Maryland School of Medicine Division of Gerontology
> Baltimore VA Medical Center
> 10 North Greene Street
> GRECC (BT/18/GR)
> Baltimore, MD 21201-1524
> (Phone) 410-605-7119
> (Fax) 410-605-7913 (Please call phone number above prior to faxing)>>> David Winsemius <dwinsemius@comcast.net> 9/18/2012 8:35 PM >>>
> 
> On Sep 18, 2012, at 5:10 PM, John Sorkin wrote:
> 
> > Window 7
> > R 2.15
> > 
> > I am writing a simulation which generates sample sized estimates from simulated data. When I run the function shown below,
> > power.t.test(delta=14.02528,sd=1.945226,power=0.8,sig.level=0.05)
> > 
> > I get an error message:
> > 
> >> power.t.test(delta=14.02528,sd=1.945226,power=0.8,sig.level=0.05)
> > Error in uniroot(function(n) eval(p.body) - power, c(2, 1e+07)) : 
> >  f() values at end points not of opposite sign
> > 
> > The fact that the function can not return a sample size is OK, however I need to trap the error and set the sample size equal to NA. How do I trap the error so that when the error occurs I can set sample size equal to NA? 
> 
> ?conditions   #### has lots of fancy stuff
> # But I use just plain old `try`
> 
> test=-10:10
> sapply(test, function(x)  if( "try-error" %in% 
>                      class( try( test[test[x:1]] ) ) ){
>                      2}else{0} )
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> Error in test[x:1] : only 0's may be mixed with negative subscripts
> [1] 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0
> 
> You still get the messages but the code runs.
> 
> -- 
> 
> David Winsemius, MD
> Alameda, CA, USA
> 
> 
> 
> Confidentiality Statement:
> 
> This email message, including any attachments, is for ...{{dropped:14}}


