Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 是否有一种方法可以根据两列删除重复项,但将数字最大的一列保留在第三列中?_R_Duplicates - Fatal编程技术网

R 是否有一种方法可以根据两列删除重复项,但将数字最大的一列保留在第三列中?

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和年龄(重复),则删除这些值,但保留月数最高的值

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

完美。这成功了!