Использование any () или all () с is.na () для нескольких столбцов - PullRequest
0 голосов
/ 14 ноября 2018

Я хотел бы удалить строки из моего набора данных, которые все являются NA (AKA сохраняет строки с любыми не-NA) для списка столбцов.Как я могу обновить этот код, чтобы x & y были представлены в виде вектора?Это позволило бы мне гибко добавлять и удалять столбцы для проверки.

library(dplyr)

ds <- 
  tibble(
  id = c(1:4),
    x = c(NA, 1, NA, 4),
    y = c(NA, NA , 3, 4)
  ) 

ds %>%
  rowwise() %>%
  filter(
    any(
      !is.na(x),
      !is.na(y)
    ) 
  ) %>% 
  ungroup()

Я пытаюсь написать что-то вроде any(!is.na(c(x,y))), но я не уверен, как предоставить несколько аргументов для is.na().

1 Ответ

0 голосов
/ 14 ноября 2018

Мы можем использовать filter_at с any_vars

ds %>% 
   filter_at(vars(x:y), any_vars(!is.na(.)))
# A tibble: 3 x 3
#     id     x     y
#  <int> <dbl> <dbl>
#1     2     1    NA
#2     3    NA     3
#3     4     4     4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...