On Mon, Aug 2, 2010 at 2:08 PM, Michael Lachmann <lachm...@eva.mpg.de> wrote: > > Reduce() is much nicer, but I usually use > > rowSums(A) > 0 for 'or', and > rowSums(A) == ncols for 'and'. > > Which works slightly faster.
For the sake of my own curiosity, I compared several of these options, but in case others are interested..... > boolean <- c(TRUE, FALSE, FALSE) > > set.seed(1) > mydata <- data.frame(X = sample(boolean, 10^7, replace = TRUE), + Y = sample(boolean, 10^7, replace = TRUE), + Z = sample(boolean, 10^7, replace = TRUE)) > > system.time(opt1 <- apply(mydata, 1, any)) user system elapsed 147.26 0.42 148.56 > system.time(opt2 <- Reduce('|', mydata)) user system elapsed 0.33 0.00 0.35 > system.time(opt3 <- as.logical(rowSums(mydata, na.rm = TRUE))) user system elapsed 0.25 0.00 0.27 > system.time(opt4 <- rowSums(mydata, na.rm = TRUE) > 0) user system elapsed 0.25 0.00 0.25 > > identical(opt1, opt2) [1] TRUE > identical(opt1, opt3) [1] TRUE > identical(opt1, opt4) [1] TRUE > > rm(boolean, mydata, opt1, opt2, opt3, opt4) > > I noticed, though, that Reduce() doesn't work on matrices. Is there an > alternative for matrices, or do you have to convert the matrix first to a > data.frame, and then use Reduce? > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Using-apply-for-logical-conditions-tp2310929p2310991.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. > -- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/ ______________________________________________ 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.