This question already has answers here:
Calculate group mean (or other summary stats) and assign to original data

(4个答案)


3年前关闭。





我有数据框df,例如:

key  entry  x1
1    1      0.2
1    2      0.1
1    3      0.5
1    4      0.6
2    1      0.2
2    2      0.1
2    3      0.7
2    4      0.3


每个组由key定义,并具有相同数量的entry值。我想保留此表结构以备后用。我需要添加一个名为sumx1的新列,以便每一行具有与该行关联的键组的x1之和。

在上面的示例中,键组1的总和为0.2 + 0.1 + 0.5 + 0.6 = 1.4,因此在名为sumx1的新列中,我需要为键为1的每一行输入1.4。

我试过了:

df["sumx1"] <- NA
df$sumx1 <- aggregate(df$sumx1, list(key=df$key), sum)


但这会引发警告错误,因为它只会给我每组的总和。

最佳答案

使用ave

 df$sumx1 <- ave(df$x1, df$key, FUN=sum)

关于r - 使用R统计信息将组总和添加到每一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17748994/

10-12 18:47