Stavros Macrakis wrote: > On Tue, Jun 16, 2009 at 5:16 AM, Stefan Uhmann <stefan.uhm...@googlemail.com > >> wrote: >> > > >> why does this not work? >> >> df <- data.frame(var1 = c(3,2,1), var2 = c(6,5,4), var3 = c(9,8,7), >> fac = c('A', 'A', 'B')) >> tapply(cbind(df$var1, df$var2, df$var3), df$fac, mean) >> >> > > Because tapply is defined for atomic vectors and not for data frames.
that's not it -- the error message is about lengths. cbind produces a matrix, and tapply receives no data frame as input. the input is of correct type, but the lengths do not match -- the length of a 3x3 matrix is 9. > Why? > I don't know. > who does? anyway, tapply does "work" for data frames, though it contradicts the documentation. vQ ______________________________________________ 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.