添加不包括重复项的值

时间:2019-07-03 21:06:52

标签: r

我在R中具有以下数据帧(实际数据帧是数百万行,具有成千上万个唯一的Column A值):

Row  Column A   Column B 

1       130077     65         
2       130077     65         
3       130077     65         
4       200040     10         
5       200040     10       

如何在不包括重复的A列值的情况下将按A列值分组的B列值相加?正确的输出为:

130077 65
200040 10
........

我尝试使用filter和group_by都没有成功,因为最终输出的确按A列的值求和,但包含重复的值。

1 个答案:

答案 0 :(得分:0)

一种选择是获取distinct行,然后按'ColumnA'分组并获取'ColumnB'的sum

library(dplyr)
df1 %>% 
    distinct(ColumnA, ColumnB) %>% # The example gives the expected output here
    group_by(ColumnA) %>%
    summarise(ColumnB = sum(ColumnB))

或者在base R中与uniqueaggregate

aggregate(ColumnB ~ ColumnA, unique(df1[c("ColumnA", "ColumnB")]), sum)