r - 按因子计算组的均值

标签 r statistics

有没有一种方法可以改进或更简单?

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软件包来执行此操作。

关于r - 按因子计算组的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3858461/

相关文章:

r - 为 geom_polygon 添加图例

python - 通过网状结构在 R 中创建 python 列表

r - ggplot2 geom_area 重叠面积图在彼此前面

r - 带编号的点标签加上散点图中的图例

c# - 加倍游戏模拟

mysql - VIF 在 R 中返回别名系数

r - 使用 ggplot2 如何表示图例中的点和线

r - ggplot2在使用facet时控制每行面板的数量?

algorithm - Fisher信息与EM算法的关系?

java - 如何使用 ExecutorService 跟踪任务执行统计信息?