Skip to content
Back to formatted view

Raw Message

Message-ID: <09285089-FCBC-479C-A291-37D96A4CF7AA@comcast.net>
Date: 2012-09-19T00:35:01Z
From: David Winsemius
Subject: Trap an error from a function
In-Reply-To: <5058D52F020000CB000C9476@med-webappgwia1.medicine.umaryland.edu>

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