Assuming a data frame or matrix with two columns representing variable that you want to aggregate over. you want to calculate column means, by year, for each Id
example<-data.frame(id=c(rep(12345,5),rep(54321,6),rep(45678,7)),Year=rep(seq(1900,1902,by=1),6), x=seq(1,18,by=1),y=seq(18,1,by=-1)) example id Year x y 1 12345 1900 1 18 2 12345 1901 2 17 3 12345 1902 3 16 4 12345 1900 4 15 5 12345 1901 5 14 6 54321 1902 6 13 7 54321 1900 7 12 8 54321 1901 8 11 9 54321 1902 9 10 10 54321 1900 10 9 11 54321 1901 11 8 12 45678 1902 12 7 13 45678 1900 13 6 14 45678 1901 14 5 15 45678 1902 15 4 16 45678 1900 16 3 17 45678 1901 17 2 18 45678 1902 18 1 result<-by(example[,3:4], example$id, by(example[,3:4], example$Year,colMeans, na.rm=T)) Error in FUN(X[[1L]], ...) : could not find function "FUN desired result should look like: id Year meanx mean y 1 12345 1900 ... ... 2 12345 1901 ... 3 12345 1902 ... 4 54321 1900 5 54321 1901 6 54321 1902 7 45678 1900 8 45678 1901 9 45678 1902 [[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.