一个我似乎无法弄清楚的简单问题!
> 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,我不想删除它。
答案 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