删除重复项

时间:2015-07-28 11:48:05

标签: r

我有一个包含值的数据框:

x y value 
A B 10  
B A 15  
A C 5  
C A 10  
B C 20

df <- data.frame(x = c("A", "B", "A", "C", "B"),
                 y = c("A", "A", "C", "A", "C"),
                 value = c(10, 15, 5, 10, 20))

我想将此数据汇总到 x y 的每个组合,并获得每个组合的值的总和。结果将是:

x y value
A B 25  
A C 15  
B C 20

我发现这个question或多或少与我的问题相同。但是解决方案在我的案例中不起作用。这是因为 x y 中的值是字符串,min()max()不起作用。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:3)

一个选项是sort前两列中的行并替换它,使用aggregate获取sum的值&#39;由小组&#39; x&#39;并且&#39; y&#39;。

df[1:2] <- t(apply(df[1:2], 1, sort))
aggregate(value~., df, sum)
#  x y value
# 1 A B    25
# 2 A C    15
# 3 B C    20