从R中的冗余行获取数据集的最大值

时间:2016-07-29 16:34:07

标签: r

我有一个包含3个ID和一个成本的数据集。如果3个ID在集合中重复,我需要获得最大的成本 例如:

id1 id2 id3  cost
1   100 450  1000
2   678 098  786
3   897 867  7897
1   100 450  1500

我的输出应该是

id1 id2 id3  cost
2   678 098  786
3   897 867  7897
1   100 450  1500

因为所有3个ID都与1和max(1500,1000) = 1000

相同

另外,如何获得相同集合的最小值。

1 个答案:

答案 0 :(得分:1)

我们可以使用summarise_each

library(dplyr)
df1 %>%
   group_by(id1, id2, id3) %>%
   summarise_each(funs(max))

或使用data.table

library(data.table)
setDT(df1)[, lapply(.SD, max) , by = .(id1, id2, id3)]

或使用aggregate

中的base R
aggregate(cost~., df1, FUN = max)