如何在R中获得均值?

时间:2016-02-03 18:22:06

标签: r

假设我有这些数据(我正在使用的一个非常简单的例子):

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?的副本,因为它问的是一个相当简单的问题。这个问题的答案对我有帮助;对另一个人的答案超出了我的想法。)

1 个答案:

答案 0 :(得分:1)

尝试

summarise(a, avg_height = weighted.mean(avg_height, count))
#  avg_height
#1    5.35641

weighted.mean可让您指定权重,在您的情况下指定频率。