【发布时间】:2015-05-12 16:19:37
【问题描述】:
我有一个包含数百个变量和数百个观察值的数据集。每个观察都有一个唯一的标识符,并与大约 50 个组之一相关联。看起来是这样(我不关心的变量在下面被忽略了):
ID Group Score
1 10 400
2 11 473
3 12 293
4 13 382
5 14 283
6 11 348
7 11 645
8 13 423
9 10 434
10 10 124
等等
我想计算每个需要使用每个组的 N 计数的观察值的调整平均值、该组的分数总和以及每个组的分数的平均值。 (因此,在上面的示例中,第 11 组的 N 计数为 3,总和为 1466,平均值为 488.67,我将仅在 ID 2、6 和 7 上使用这些数字。
我一直在摆弄 plyr,并且能够按如下方式提取 n 计数和均值(考虑缺失的分数和组值):
new_data <- ddply(main_data, "Group", N = sum(!is.na(Scores)), mean = mean(Scores, na.rm = TRUE).
不过,我不知道如何获得特定组的分数总和,然后如何在 main_data 集或新数据集中计算调整后的平均值。任何帮助将不胜感激。
【问题讨论】:
-
使用 dplyr 包,你可能需要
group_by(mydf, Group) %>% summarise(num = n(), total = sum(Score), mean = sum(Score) / n())