总结一个包含多个类别的列

时间:2015-06-12 22:39:58

标签: r aggregate

如果我的数据框看起来像

dat<-data.frame(val= c(1,2,3,4,5,6,7),category= c("A","B","c","A","B","c","D"))
dat

  val category
1   1        A
2   2        B
3   3        c
4   4        A
5   5        B
6   6        c
7   7        D

我想按类别进行AVERAGE,以便输出看起来像

A  2.5
B   3.5
C    4.5
D     7

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

最直接的方法是使用tapply,如下所示:

tapply(dat$val, dat$category, FUN = mean)

请注意,如果您缺少值,则需要修改它以忽略平均值计算中的值

tapply(dat$val, dat$category, FUN = mean, na.rm = TRUE)

看?tapply