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 创建
我正在尝试过滤掉一些数据。代码是这样的,
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 创建