使用两列删除条件重复项,并在第三列删除条件

时间:2020-09-17 18:16:37

标签: r dplyr duplicates data-cleaning

我有以下数据集

   A       B         C 
   1      red        No
   2      green      Yes
   1      red        No
   3      red        No
   2      green      No
   1      red        Yes
   4      red        Yes
   2      green      No
   5      green      No

因此,我想删除基于A列和B列的重复行,但保留那些在C列上具有“是”值的行。期望的结果将是:

   A       B         C 
   1      red        Yes
   2      green      Yes
   3      red        No
   4      red        Yes
   5      green       No

我正在寻找dplyr的答案。 谢谢大家!

1 个答案:

答案 0 :(得分:0)

您可以这样做:

df %>% 
  group_by(A, B) %>% 
  mutate(C = rev(sort(C))) %>% 
  summarise(C = C[1], .groups = "keep")

#> # A tibble: 5 x 3
#> # Groups:   A, B [5]
#>       A B     C    
#>   <int> <chr> <chr>
#> 1     1 red   Yes  
#> 2     2 green Yes  
#> 3     3 red   No   
#> 4     4 red   Yes  
#> 5     5 green No   
相关问题