使用R统计信息为每一行添加一个组和

cou*_*ete 2 r

我有数据框,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
Run Code Online (Sandbox Code Playgroud)

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

在上面的例子中,密钥组1的总和将是0.2 + 0.1 + 0.5 + 0.6 = 1.4,因此在名为sumx1I 的新列中,对于密钥为1的每一行,需要输入1.4.

我试过了:

df["sumx1"] <- NA
df$sumx1 <- aggregate(df$sumx1, list(key=df$key), sum)
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*ich 7

用途ave:

 df$sumx1 <- ave(df$x1, df$key, FUN=sum)
Run Code Online (Sandbox Code Playgroud)