[英]R: plyr/ddply and adjusted means
我有一個包含數百個變量和數百個觀測值的數據集。 每個觀察都有一個唯一的標識符,並與大約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位數和均值(考慮缺少的Score和Group值):
new_data <- ddply(main_data, "Group", N = sum(!is.na(Scores)), mean = mean(Scores, na.rm = TRUE).
但是,我對如何獲取特定組的分數總和,然后如何在main_data集合或新數據集中計算調整后的均值感到困惑。 任何幫助,將不勝感激。
這是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
出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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.