Hi,

On Jul 9, 2009, at 9:19 AM, Amit Patel wrote:


Hi I am implementing the t.test in a loop and where the data is the same i get an error message.

Error in t.test.default(Samp3, Samp1, na.rm = TRUE, var.equal = FALSE, :
 data are essentially constant

The script i am using is

for (i in 1:length(zz[,1])) {

Samp1 <- zz[i,2:17]
Samp2 <- zz[i,18:33]
Samp3 <- zz[i,34:47]
Samp4 <- zz[i,48:63]

TTestResult[i,2] <- t.test(Samp2, Samp1, na.rm=TRUE, var.equal = FALSE, paired=FALSE, conf.level=0.95)$p.value


TTestResult[i,3] <- t.test(Samp3, Samp1, na.rm=TRUE, var.equal = FALSE, paired=FALSE, conf.level=0.95)$p.value

TTestResult[i,4] <- t.test(Samp4, Samp1, na.rm=TRUE, var.equal = FALSE, paired=FALSE, conf.level=0.95)$p.value

}

Is there a way to make my loop ignore this problem and go onto the next iteration

Yes, see: ?try and ?tryCatch

For example:

R> log(10)
[1] 2.302585

R> log("a")
Error in log("a") : Non-numeric argument to mathematical function

R> a <- tryCatch(log(10), error=function(e) {
+ cat("There was an error\n")
+ NA
+ })

R> b <- tryCatch(log("a"), error=function(e) {
+ cat("There was an error\n")
+ NA
+ })
There was an error

R> a
[1] 2.302585

R> b
[1] NA

-steve

--
Steve Lianoglou
Graduate Student: Physiology, Biophysics and Systems Biology
Weill Medical College of Cornell University

Contact Info: http://cbio.mskcc.org/~lianos

______________________________________________
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