Just for fun, here are another couple of versions that work for data frames.
For Reduce with "|" do.call(pmax,c(mydata,na.rm=TRUE)) >0 and for "&" do.call(pmin,c(mydata,na.rm=TRUE)) >0 Cheers, Bert Gunter Genentech Nonclinical Biostatistics On Mon, Aug 2, 2010 at 2:28 PM, Joshua Wiley <jwiley.ps...@gmail.com> wrote: > 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. > ______________________________________________ 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.