在dplyr中删除部分相同的行

时间:2019-06-07 06:28:23

标签: dplyr

一个我似乎无法弄清楚的简单问题!

> ID = c(1, 1, 2)
> var = c("A", NA, NA)
> d <- data.frame(ID, var)
> d
  ID  var
1  1    A
2  1 <NA>
3  2 <NA>

基于具有相同ID的行具有var值的事实,我想使用dplyr删除第二行。如果只有一个ID,我不想删除它。

1 个答案:

答案 0 :(得分:0)

如何按ID分组并选择排列的第一个值,以使如果该组中有avlue,则从不选择NA?

ID = c(1, 1, 2)
var = c("A", NA, NA)
d <- data.frame(ID, var)

d %>% 
  group_by(ID) %>% 
  arrange() %>% 
  slice(1) %>% 
  ungroup()

结果:

# A tibble: 2 x 2
     ID var  
  <dbl> <chr>
1     1 A    
2     2 NA