我正在尝试aggregate
数据集,但我还希望保留观察数量。所以我所拥有的与此类似:
aggregate(iris$Sepal.Length, by=list(iris$Species), FUN=mean)
但是返回一个像这样的对象:
Group.1 x
1 setosa 5.006
2 versicolor 5.936
3 virginica 6.588
当我想要的是那个和每个组中的观察(行)数量(在一个单独的列中)
答案 0 :(得分:6)
试验和错误显示这有效:
FUN = function(x) c(m = mean(x), n = length(x))
在dplyr和data.table等包中还有其他方法可以做到这一点。
答案 1 :(得分:2)
dplyr和hadley ftw
grp <- group_by(iris, Species)
summarise(grp, avg = mean(Sepal.Length), n =n ())
Source: local data frame [3 x 3]
Species avg n
1 setosa 5.006 50
2 versicolor 5.936 50
3 virginica 6.588 50