将每个值保留在最大组- R中

dly7yett  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(232)

我有df,A,B,C,D,对于每个组,A的排名都是1,B,C,D的排名最低。
在每一组中,有名称和ID,我需要为每一个保持最高等级。

ID | Name | Group
101| Jon  | A
101| Jon  | C
103| Tom  | B
103| Tom  | D
103| Tom  | C

输出需要这样

ID | Name | Group
101| Jon  | A
103| Tom  | B

使用Tidyverse R的最佳方法是什么
谢啦,谢啦
我已经使用distinct为每个ID保留一个值,我使用case_when在每个组中保留。但是现在我只想保留较高的等级。

v1l68za4

v1l68za41#

我们可以使用

library(dplyr)
df1 %>%
 arrange(ID, Name, factor(Group, levels = c("A", "B", "C", "D"))) %>%
 distinct(ID, .keep_all = TRUE)
  • 输出
ID Name Group
1 101  Jon     A
2 103  Tom     B

数据

df1 <- structure(list(ID = c(101, 101, 103, 103, 103), Name = c("Jon", 
"Jon", "Tom", "Tom", "Tom"), Group = c("A", "C", "B", "D", "C"
)), class = "data.frame", row.names = c(NA, -5L))

相关问题