filter_all for !is.na() in R 仍然产生缺失值

filter_all for !is.na() in R still yields missing values

我正在尝试使用 dplyr 的 filter_all() 来生成所有 有任何缺失数据的行。我正在使用 dplyr 的内置星球大战数据集。当我使用此代码得出 does 有任何缺失值时,它可以无缝运行:

 library(dplyr)
 data("starwars")

rows_with_NAs <- starwars %>%
  filter_all(any_vars(is.na(.)))

但是,如果我尝试使用此代码查找的行有任何缺失值:

rows_without_NAs <- starwars %>%
  filter_all(any_vars(!is.na(.)))

我仍然得到带有 NA 的行。

head(rows_without_NAs)

为什么会这样,我该如何解决?

谢谢!

tidyr 对此有 drop_na() 运算符。

library(tidyverse)

data("starwars")

rows_without_NAs <- starwars %>%
    drop_na()