我有一个包含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
另外,如何获得相同集合的最小值。
答案 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)