Попробуй это:
df %>% na.omit
или это:
df %>% filter(complete.cases(.))
или это:
library(tidyr)
df %>% drop_na
Если вы хотите выполнить фильтрацию на основе отсутствия одной переменной, используйте условное выражение:
df %>% filter(!is.na(x1))
или
df %>% drop_na(x1)
Другие ответы показывают, что из вышеперечисленных решений na.omit
намного медленнее, но это должно быть сбалансировано с тем фактом, что оно возвращает индексы строк пропущенных строк в na.action
атрибуте, тогда как другие решения выше этого не делают.
str(df %>% na.omit)
## 'data.frame': 2 obs. of 2 variables:
## $ x1: num 1 2
## $ x2: num 1 2
## - attr(*, "na.action")= 'omit' Named int 3 4
## ..- attr(*, "names")= chr "3" "4"
ДОБАВЛЕНО Обновлены, чтобы отразить последнюю версию dplyr и комментарии.
ДОБАВЛЕНО Обновлены, чтобы отразить последнюю версию tidyr и комментарии.
complete.cases
не только принимает векторы. Также требуются целые фреймы данных.