假设我有这些数据(我正在使用的一个非常简单的例子):
a <- data_frame(c(45, 50, 1), c('cats', 'dogs', 'giraffes'), c(1.5, 3, 15))
names(a) <- c('count', 'animal', 'avg_height')
count animal avg_height
(dbl) (chr) (dbl)
1 45 cats 1.5
2 50 dogs 3.0
3 1 giraffes 15.0
我正在尝试使用汇总来获得整个人口的平均身高。所以我这样做:
summarize(a, count = sum(count), avg_height = mean(avg_height))
count avg_height
(dbl) (dbl)
1 96 6.5
这显然不对,因为我们计算了更多的狗和猫。在总结时如何说服总结考虑计数?或者我应该使用不同的功能吗?
(我不相信这是How do I compute weighted average using summarise_each?的副本,因为它问的是一个相当简单的问题。这个问题的答案对我有帮助;对另一个人的答案超出了我的想法。)
答案 0 :(得分:1)
尝试
summarise(a, avg_height = weighted.mean(avg_height, count))
# avg_height
#1 5.35641
weighted.mean
可让您指定权重,在您的情况下指定频率。