On 12-09-18 8: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?

You can wrap the call in try(). Then check whether the result inherits from try-error, e.g.

res <- try( ... )
if (inherits(res, "try-error")) { do something to handle the error }
else { proceed as you would with no error }

In the example you gave, the problem is that even a sample size of 2 gives more than 0.8 power. The function should probably check for that case, but it doesn't.

Duncan Murdoch

______________________________________________
R-help@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.

Reply via email to