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

时间:2015-06-19 15:23:28

标签: r duplicates

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

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:3)

您想要聚合:

aggregate(B~A, df, FUN=sum)

答案 1 :(得分:0)

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