加权已计算的平均值

时间:2018-02-21 11:51:40

标签: r mean

我有这样的数据:

category <- c("A", "B", "C", "B", "B", "B", "C")
mean <- c(5,4,5,4,3,1,5)
counts <- c(5, 200, 300, 150, 400, 200,250)

df <- data.frame(category, mean, counts)

category是某种因素,mean是已计算的平均值。 mean是通过不同形式的比例(1-5)和counts的数量来计算的。我只计算了mean s,而不是计算出的单个值。

目标是在不同的mean上汇总不同的category。像这样:

library(dplyr)
df %>% group_by(category) %>% 
  summarise(weighted.mean(mean, counts))

A   5.000000        
B   2.947368        
C   5.000000    

问题在于,从counts(550)等较高CA(5)之类的较低计数获得平均值更有价值(在我的情况下)。任何想法如何考虑到这一点?

我的解决方案就是这个。但我不知道它是否有效:

df %>% mutate(y = mean * counts) %>%
  mutate(category = as.factor(category)) %>%
  group_by(category) %>%
    summarise(X = sum(y)) %>%
  arrange(desc(X))


B   2800            
C   2750            
A   25  

0 个答案:

没有答案