计算Rrstats中预先聚合数据(具有平均值和计数)的中位数

时间:2016-12-08 20:04:42

标签: r statistics aggregation median

如何对已经汇总的数据进行正确的median计算?

假设我有一个看起来像这样的数据框

> df <- data_frame(name = c("A","B","C","D"), count = c(1,3,5,2), avg = c(100,50,20,10))
> df
# A tibble: 4 × 3
   name count   avg
  <chr> <dbl> <dbl>
1     A     1   100
2     B     3    50
3     C     5    20
4     D     2    10

假设我们不知道箱内的内容,但假设箱内的变化很小。 据我们所知,我们会排列这样的值:

10 10 20 20 20 20 20 50 50 50 100

在11个值中,中位数为第6个 20

但如果我只使用median(),R就会超过4个值:10, 20, 50, 100

> median(df$avg)
[1] 35

这不是我想要的。

如何绕过这个并“展开”数据集?

1 个答案:

答案 0 :(得分:3)

李哲元评论解决了这个问题。 这很简单,我很惊讶我不知道。

with(df, median(rep.int(avg, count)) )