R 是否有一种方法可以根据两列删除重复项,但将数字最大的一列保留在第三列中?
我想获取这个数据集,如果它们具有相同的id和年龄(重复),则删除这些值,但保留月数最高的值R 是否有一种方法可以根据两列删除重复项,但将数字最大的一列保留在第三列中?,r,duplicates,R,Duplicates,我想获取这个数据集,如果它们具有相同的id和年龄(重复),则删除这些值,但保留月数最高的值 ID|Age|Month| 1 25 7 1 25 12 2 18 10 2 18 11 3 12 10 3 25 10 4 19 10 5 10 2 5 10 3 结果如何 ID|Age|Month 1 25 12 2 18 11 3 12 10 3 25 10 4 19 10 5 10
ID|Age|Month|
1 25 7
1 25 12
2 18 10
2 18 11
3 12 10
3 25 10
4 19 10
5 10 2
5 10 3
结果如何
ID|Age|Month
1 25 12
2 18 11
3 12 10
3 25 10
4 19 10
5 10 3
请注意,它删除了重复项,但保留了月数最高的版本。作为解决方案选项
ID|Age|Month|
1 25 7
1 25 12
2 18 10
2 18 11
3 12 10
3 25 10
4 19 10
5 10 2
5 10 3
库(tidyverse)
df%
组别(身份,年龄)%>%
切片最大值(月)
#>#tibble:6 x 3
#>#组别:身份证、年龄[6]
#>身份证年龄月
#>
#> 1 1 25 12
#> 2 2 18 11
#> 3 3 12 10
#> 4 3 25 10
#> 5 4 19 10
#> 6 5 10 3
由(v1.0.0)使用
dplyr
包于2021-02-11创建的解决方案:
df %>%
+ group_by(ID, Age) %>%
+ filter(Month == max(Month))
# A tibble: 6 x 3
# Groups: ID, Age [6]
ID Age Month
<dbl> <dbl> <dbl>
1 1 25 12
2 2 18 11
3 3 12 10
4 3 25 10
5 4 19 10
6 5 10 3
df%>%
+组别(身份,年龄)%>%
+过滤器(月==最大值(月))
#一个tibble:6x3
#组别:身份证、年龄[6]
身份证年龄月
1 1 25 12
2 2 18 11
3 3 12 10
4 3 25 10
5 4 19 10
6 5 10 3
完美。这成功了!