Can we please apply the following patch? It fixes the following problem I already reported: ************************************************************************ There is a problem with tapply() in the case where INDEX is a factor with at least one of its levels not occurring in it. In this case, namelist[[i]] <- levels(index) gets all levels but group <- group + ngroup * (codes(index) - 1) only those occurring in index, which subsequently causes names(ans) <- namelist[[1]] to fail. For example, R> f <- factor(c("a", "a", "b"), levels = letters[1:3]) R> f [1] a a b R> codes(f) [1] 1 1 2 R> levels(f) [1] "a" "b" "c" which gives e.g. R> tapply(rep(1, length(f)), f, sum) Error: names attribute must be the same length as the vector ************************************************************************ Thanks, -k --- src/library/base/funs/tapply.orig Fri Feb 7 01:08:31 1997 +++ src/library/base/funs/tapply Sun Aug 10 21:57:31 1997 @@ -14,7 +14,7 @@ index <- as.factor(INDEX[[i]]) if (length(index) != nx) stop("arguments must have same length") - namelist[[i]] <- levels(index) + namelist[[i]] <- unique(levels(index)[index]) extent[[i]] <- nlevels(index) group <- group + ngroup * (codes(index) - 1) ngroup <- ngroup * nlevels(index) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-