有没有一种方法可以改进这个,或者更简单地完成它?
means.by<-function(data,INDEX){
b<-by(data,INDEX,function(d)apply(d,2,mean))
return(structure(
t(matrix(unlist(b),nrow=length(b[[1]]))),
dimnames=list(names(b),col.names=names(b[[1]]))
))
}
这个想法与SAS MEANS BY语句相同。'means.by'函数接收一个数据框和一个索引变量,对于与INDEX唯一值对应的每组行,计算数据框列的平均值,并返回一个新的数据框,其中行名是INDEX的唯一值。
我确信在R中有更好的方法来做到这一点,但我想不出来。