dplyr 过滤器函数正在删除与空值对应的行

dplyr filter function is dropping rows corresponding to empty values

我正在尝试过滤掉一些数据。代码是这样的,

df %>% filter(sortingvar, != "AA")

所以问题是它正在删除所有 AA,但当“sortingvar”缺少值时它也会删除整行。它之所以重要,是因为在其他列中,它确实具有重要的价值。

谢谢。

问题是 (NA != "AA")NA,而不是 TRUE,因此您需要明确检查 NA,并包括那些行。

library(dplyr, warn.conflicts = FALSE)
data <- data.frame(row=seq(9), sortingvar=c("AA", NA, "BB"))
data %>% filter(sortingvar != "AA")
#>   row sortingvar
#> 1   3         BB
#> 2   6         BB
#> 3   9         BB
data %>% filter(sortingvar != "AA" | is.na(sortingvar))
#>   row sortingvar
#> 1   2       <NA>
#> 2   3         BB
#> 3   5       <NA>
#> 4   6         BB
#> 5   8       <NA>
#> 6   9         BB

reprex package (v2.0.1)

于 2022-03-11 创建