отображать идентификаторы всех значений определенного столбца NA r - PullRequest
0 голосов
/ 16 октября 2018
id <- c(1,1,1,2,3,3,3,4,4,5,5)
val1 <-c(NA,1,2,NA,NA,3,4,4,NA,NA)
dt <- data.frame(id,val1)

dt - мой фрейм данных. Я хочу вывести идентификатор, в котором все значения val1 равны NA.

id val1
1  NA
1  1
1  2
2  NA
3  NA
3  NA
3  3
4  4
4  4
5  NA
5  NA

должно быть

id
2
5  

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

вы можете сделать с dplry пакетом

library(dplyr)

dt %>%
  group_by(id) %>%
  filter(all(is.na(val1))) %>%
  pull(id) %>%
  unique()

выход :

[1] 2 5
0 голосов
/ 16 октября 2018

Другая dplyr возможность:

dt %>%
  group_by(id) %>%
  mutate(temp = ifelse(sum(is.na(val1)) == n(), 1, 0)) %>%
  filter(temp == 1) %>%
  distinct() %>%
  select(id)
0 голосов
/ 16 октября 2018

После группировки по 'id', filter строки, которые имеют все NA в 'val1' и select столбец 'id'

library(dplyr)
dt %>%
     group_by(id) %>%
     filter(all(is.na(val1))) %>%
     select(id) %>%
     distinct
# A tibble: 2 x 1
# Groups:   id [2]
#     id
#  <dbl>
#1     2
#2     5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...