У меня есть некоторые проблемы с, казалось бы, простой задачей: удалить все строки, где все переменные NA
с помощью dplyr. Я знаю, что это можно сделать с помощью базы R (удаление строк в матрице R, где все данные - NA и удаление пустых строк в файле данных в R), но мне интересно знать, существует ли простой способ сделать это с помощью dplyr,
Пример:
library(tidyverse)
dat <- tibble(a = c(1, 2, NA), b = c(1, NA, NA), c = c(2, NA, NA))
filter(dat, !is.na(a) | !is.na(b) | !is.na(c))
Вызов filter
выше делает то, что я хочу, но это невозможно в ситуации, с которой я сталкиваюсь (поскольку существует большое количество переменных). Я думаю, что можно было бы сделать это, используя filter_
и сначала создав строку с (длинным) логическим оператором, но, похоже, должен быть более простой способ.
Другой способ - использовать rowwise()
и do()
:
na <- dat %>%
rowwise() %>%
do(tibble(na = !all(is.na(.)))) %>%
.$na
filter(dat, na)
но это не выглядит слишком хорошо, хотя и выполняет свою работу. Другие идеи?