R根据一列和第二列的重复值创建一列

R create a column based on duplicate values of one column, and a second column

我有两列。一个有多个重复值(A 列)(如 10、10、20、5、10、20 等)。另一个 (col B) 是二进制 (0/1) 变量。如果需要,我需要让 R 首先对第一列 A 进行排序,然后查看所有重复值及其在第二列 B 中的对应值。然后,对于 col A 中的每组重复值,我需要对 col B 中的值求和。因此,如果 col A 中有 5 个 10,那么我需要对与这 5 个 10 中的每一个相关联的 col B 中的 1 求和。

我该怎么做?

谢谢。

您想要聚合:

aggregate(B~A, df, FUN=sum)
df = data.frame(A = c(5,10, 5, 10), B=c(0,1,1,1))
tapply(df$B, df$A, sum)
#  5 10 
#  1  2 

Neal 的解决方案以更好的方式呈现结果:

aggregate(B~A, df, FUN=sum)
#    A B
# 1  5 1
# 2 10 2