Dear All, For a vector, I use this
xu<-1:20 t<-rep((1:4),each=5) tapply(xu,t,mean) 1 2 3 4 3 8 13 18 and for a matrix the only way I may guess is: > xu [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 4 3 2 1 4 3 2 [2,] 2 1 4 3 2 1 4 3 [3,] 3 2 1 4 3 2 1 4 [4,] 1 4 3 2 1 4 3 2 [5,] 2 1 4 3 2 1 4 3 [6,] 3 2 1 4 3 2 1 4 > t [1] 1 1 1 2 2 2 > y [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 0 0 0 0 0 0 0 0 [2,] 0 0 0 0 0 0 0 0 > for (i in 1:dim(xu)[2]) y[,i]<-tapply(xu[,i],t,mean) > y [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 2 2.333333 2.666667 3 2 2.333333 2.666667 3 [2,] 2 2.333333 2.666667 3 2 2.333333 2.666667 3 I do not like the need to create a matrix (y) for the result. Is there a better way? Thanks, Andrei. [[alternative HTML version deleted]] ______________________________________________ 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.