如果我的数据框看起来像
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
最好的方法是什么?
答案 0 :(得分:2)
最直接的方法是使用tapply
,如下所示:
tapply(dat$val, dat$category, FUN = mean)
请注意,如果您缺少值,则需要修改它以忽略平均值计算中的值
tapply(dat$val, dat$category, FUN = mean, na.rm = TRUE)
看?tapply