我有一个数据帧df
,其变量为x
。但是,检查NA
的两个不同表达式给我不同的结果。谁能解释?
sum(is.na(df$x)
#[1] 41
df %>% filter(x==NA)
#A tibble: 0 x 1`
答案 0 :(得分:0)
请注意,通过NA
与==
进行比较(几乎)总是得出NA
。这很容易证明:
x <- c(1, 2, NA, 4)
x == NA
#[1] NA NA NA NA
请参见help("NA")
和help("==")
。从后面的文档中:
缺少值(
NA
和NaN
的值甚至与它们自己也无法比较,因此涉及它们的比较将始终产生NA
。
因此您的dplyr
代码应为:
df %>% filter(is.na(x))