Huele a bicho (en plyr)
library(plyr) dat <- data.frame( a = sample(c("x", "y"), 100, replace = T), b = sample(c(TRUE, FALSE), 100, replace = T)) ddply(dat, .(a), summarize, b = sum(b), no.b = sum(!b)) ddply(dat, .(a), summarize, no.b = sum(!b), b = sum(b)) Huele a bicho, ¿verdad?