我有一个包含数百个变量和数百个观测值的数据集。每个观察具有唯一的标识符,并且与大约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集或新数据集中计算调整后的均值感到困惑。任何帮助将不胜感激。
答案 0 :(得分:0)
以下是plyr
方式。
ddply(main_data, .(Group), summarize, N = sum(!is.na(Score)), mean = mean(Score, na.rm = TRUE), total = sum(Score))
Group N mean total
1 10 3 319.3333 958
2 11 3 488.6667 1466
3 12 1 293.0000 293
4 13 2 402.5000 805
5 14 1 283.0000 283
查看dplyr
包。
main_data %>% group_by(Group) %>% summarize(n = n(), mean = mean(Score, na.rm=TRUE), total = sum(Score))
Source: local data frame [5 x 4]
Group n mean total
1 10 3 319.3333 958
2 11 3 488.6667 1466
3 12 1 293.0000 293
4 13 2 402.5000 805
5 14 1 283.0000 283