我有一个包含以下信息的数据集:
> 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
有什么办法吗?感谢
答案 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))