首页 > 解决方案 > 通过 R 中的另一个变量对平均值进行分组

问题描述

对于示例数据框:

set.seed (1000)
value <- rnorm(1000)
wave <- rep(1:5, times=20, each=10)
length <- rep(1:10, times=10, each=10)
df <- data.frame(value, length, wave)

我想为每个“波浪”的每个长度(1-10)的平均值创建一个汇总表。如果我只有一个时间点的数据,我会使用:

aggregate(df$value, by=list(Category=df$length), FUN=sum)

但是我如何为所有不同的波浪计算这个?我可以在一个命令中执行此操作吗?

标签: r

解决方案


你的意思是这样的......:

> aggregate(value~length+wave, data=df, FUN=sum)
   length wave      value
1       1    1 -14.055504
2       6    1 -11.303317
3       2    2 -24.260527
4       7    2   4.307751
5       3    3  -2.128476
6       8    3  11.522721
7       4    4  -1.202818
8       9    4  20.985253
9       5    5  12.848358
10     10    5  -9.189343

推荐阅读