我有这样的数据:
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
是已计算的平均值。
意思是
通过不同形状的刻度(1-5)和
counts
. 我只是计算了一下
意思是
s,而不是计算它的单个值。
目标是将不同的
意思是
s在不同的方面
类别
s、 像这样:
library(dplyr)
df %>% group_by(category) %>%
summarise(weighted.mean(mean, counts))
A 5.000000
B 2.947368
C 5.000000
问题是,从更高的
计数
喜欢
C
(550)然后从较低的计数,如
A
(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