【发布时间】:2020-08-26 13:11:05
【问题描述】:
我的矩阵中有三列
[,1] [,2] [,3]
1 0.11651699 1
1 0.03850202 1
0 0.11651699 NA
0 0.11651699 NA
1 0.04110752 39
1 0.03599296 39
1 0.05440237 41
1 0.11651699 42
1 0.06298718 42
0 0.11651699 NA
0 0.11651699 NA
0 0.11651699 NA
我正在尝试在我的矩阵中创建第四列,用于存储每个组(第 3 列)的第 2 列的总和。预期如下
[,1] [,2] [,3] [,4]
1 0.11651699 1 0.155019 = (0.11651699 + 0.03850202)
1 0.03850202 1 0.155019 = (0.11651699 + 0.03850202)
0 0.11651699 NA 1
0 0.11651699 NA 1
1 0.04110752 39 0.07710048 = (0.04110752 + 0.03599296)
1 0.03599296 39 0.07710048 = (0.04110752 + 0.03599296)
1 0.05440237 41 0.09290439 = (0.03850202 + 0.05440237)
1 0.11651699 42 0.1795042 = (0.11651699 + 0.06298718)
1 0.06298718 42 0.1795042 = (0.11651699 + 0.06298718)
0 0.11651699 NA 1
0 0.11651699 NA 1
1 0.03850202 41 0.09290439 = (0.03850202 + 0.05440237)
显然我不能使用dplyr 和groupby,因为这仅适用于数据帧,而我正在处理矩阵对象。所以我尝试了aggregate(df1[,2] ~ df1[,3], df, sum),它成功了,但是从聚合函数中获取结果并创建第四列并不容易,如预期的输出所示。
【问题讨论】:
标签: r matrix group-by aggregate