有没有办法可以改进或更简单地做到这一点?
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”采用 data.frame 和索引变量,并计算与 INDEX 的唯一值对应的每组行的 data.frame 列的平均值,并返回一个新的数据框与该行命名 INDEX 的唯一值。
我确信在 R 中一定有更好的方法来做到这一点,但我想不出任何东西。
聚合函数是否满足您的要求?
如果没有,请查看 plyr 包,它提供了多种选项来将事物分开,对各个部分进行计算,然后再次将其重新组合在一起。
您也可以使用 reshape 包来完成此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)