【发布时间】:2021-05-06 00:54:40
【问题描述】:
我有一个数据集,其中有许多由各个 ID-s 提交的值,这些值被组织成子集。我想为每个 ID 计算一个值,该值 = ID 分数的平均值 / 子集分数的平均值。我尝试了许多使用group_by()、summarize() 和spread() 的选项,但无法安排。
library(dplyr)
df <- data.frame(stringsAsFactors=FALSE,
Subset = c("A","B","C","D","A","B","C","D","A","B","C","D"),
ID = c(1,2,3,4,5,3,1,5,2,3,4,1),
score = c(123,42,564,234,123,345,6678,87,543,121,123,55))
averages <-
df %>%
group_by(Subset) %>%
summarise(mean.subs = mean(score)) %>%
ungroup() %>%
group_by(ID) %>%
summarise(mean.id = mean(score) / mean.subs)
我将不胜感激。
【问题讨论】: