Удалить частично идентичные строки в dplyr - PullRequest
1 голос
/ 07 июня 2019

Простая проблема, которую я не могу понять!

> 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>

Что я хочу сделать, это удалить 2-ую строку с помощью dplyr, основываясь на том факте, что есть строка стот же идентификатор, который имеет значение для вар.Если есть только один идентификатор, я не хочу его удалять.

1 Ответ

0 голосов
/ 07 июня 2019

Как насчет группировки по ID и выбора первого значения, расположенного так, чтобы никогда не было выбрано NA, если в этой группе есть avlue?

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   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...