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? 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) Confidentiality Statement: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
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
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
Apparently Analagous Threads
- Solving a simple linear equation using uniroot give error object 'x' not found
- Solving a simple linear equation using uniroot give error object 'x' not found
- How does this function print, why is n1 which equals 1 printed as 2?
- regression analyses using a vector of means and a variance-covariance matrix
- Problem having tick marks aligned when plotting three graphs on top of one another.