我有这样的数据框:
df<-data.frame(Type=c("Cat","Cat","Dog","Dog","Dog","Horse","Horse","Horse"), A=c(3,2,1,4,5,3,4,2),B=c(1,2,3,3,4,1,4,2),C=c(2,1,4,5,2,1,3,2), D=c(4,1,2,4,3,4,2,5))
Type A B C D
1 Cat 3 1 2 4
2 Cat 2 2 1 1
3 Dog 1 3 4 2
4 Dog 4 3 5 4
5 Dog 5 4 2 3
6 Horse 3 1 1 4
7 Horse 4 4 3 2
8 Horse 2 2 2 5
我想按类型获取B列的平均值,因此,例如,Cat类型的平均值为1.5而Dog类型的平均值为3.33,依此类推。是否有任何函数可以同时返回所有不同类型的平均值?我想要的结果将是这样的
Cat Dog Horse
1.5 3.33 2.33
我只知道如何取列的平均值
mean(df$B)
但是我不知道如何考虑类型。
aggregate(df$B, by=list(Type=df$Type), FUN=mean)