带条件的R中的聚合

带条件的R中的聚合,r,dataframe,aggregate,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

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

> 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-b
b-a


有办法吗?谢谢

我们可以在对前两列按行排序后使用
聚合

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

使用
t(apply(df1[1:2],1,sort))
而不是
apply(df1[1:2],2,sort)
是否有任何性能改进?Hi@Jaap我以前没有找到此信息。你能把那个链接发给我吗?thanksi发现
library(dplyr)
df1 %>%
   group_by(Col1 = pmin(Column1, Column2), Col2 = pmax(Column1, Column2)) %>% 
   summarise(Sum = sum(Sum))