每位学生每学期购买多张停车证。试图删除它们,允许它们最长。结合学生ID和学期以获得唯一ID。数据框中有80列,但为此我只处理2。
UniqueID PermitDuration
01-Fall16 10
01-Fall17 11
01-Fall17 5
01-Fall17 11
02-Fall16 5
02-Fall16 12
02-Fall17 2
02-Fall17 6
我想根据PermitDuration中具有最大值的UniqueID删除UniqueID的重复项。所需的数据框看起来像这样。
UniqueID PermitDuration
01-Fall16 10
01-Fall17 11
02-Fall16 12
02-Fall17 6
答案 0 :(得分:1)
您可以使用max
。以下是使用data.table
的示例:
> library(data.table)
> setDT(mydf)[, PermitDuration[max(PermitDuration)], UniqueID]
UniqueID V1
1: 01-Fall16 10
2: 01-Fall17 11
3: 02-Fall16 12
4: 02-Fall17 6
甚至使用aggregate
:
aggregate(PermitDuration ~ UniqueID, mydf, max)
答案 1 :(得分:1)
使用dplyr:
df %>% distinct %>% group_by(UniqueID) %>% top_n(1, PermitDuration)