过滤 R 中的任何缺失值

Mos*_*ses 4 r dplyr

我一直在尝试使用 dplyr 过滤 R 中的任何缺失值,但我似乎没有得到正确的结果。任何领导将不胜感激。

library(dplyr)
library(tibble)

set.seed(2021)
testdata <- tibble(
  a1 = c(10, 12, NA, 10, 13),
  a2 = c("Test", "Test1", "Test 2", NA, NA),
  a3 = c(NA, "Test 10", "Test 2", NA, "Test 4"),
  a4 = rbinom(5, 10, 0.5)
)

testdata2 <- testdata %>% 
  filter(across(.cols = everything(), ~any_vars(is.na(.))))

Run Code Online (Sandbox Code Playgroud)

Ron*_*hah 7

如果您要这样做dplyr,您可以使用函数if_all/if_any来执行此操作。

要选择至少有一个缺失值的行 -

library(dplyr)

testdata %>% filter(if_any(everything(), is.na))

#    a1 a2     a3        a4
#  <dbl> <chr>  <chr>  <int>
#1    10 Test   NA         5
#2    NA Test 2 Test 2     6
#3    10 NA     NA         5
#4    13 NA     Test 4     6
Run Code Online (Sandbox Code Playgroud)

选择没有缺失值的行 -

testdata %>% filter(if_all(everything(), Negate(is.na)))

#     a1 a2    a3         a4
#  <dbl> <chr> <chr>   <int>
#1    12 Test1 Test 10     6
Run Code Online (Sandbox Code Playgroud)