在R条件下聚合

时间:2017-02-06 14:36:19

标签: r dataframe aggregate

我有一个包含以下信息的数据集:

> Column1 Column2 Sum 
a         b        50 
b         a         7 
c         a         1
d         e         8
c         a         2

我想聚合以获得此结果:

> Column1 Column2 Sum 
a         b        57 
c         a         3
d         e         8

因为a-bb-a

相同

有什么办法吗?感谢

1 个答案:

答案 0 :(得分:1)

我们可以在aggregate逐行前两列后使用sort

df1[1:2] <- t(apply(df1[1:2], 1, sort))
aggregate(Sum~., df1, FUN = sum)

或使用pmax/pmin

library(dplyr)
df1 %>%
   group_by(Col1 = pmin(Column1, Column2), Col2 = pmax(Column1, Column2)) %>% 
   summarise(Sum = sum(Sum))