English · PDF 75
NA / 2 #> [1] NA
最容易混淆的结果是下面这个:
NA == NA #> [1] NA
结合更多上下文,最容易理解为什么这是对的:
# 设 x 为 Mary 的年龄。我们不知道她多大。 x <- NA # 设 y 为 John 的年龄。我们不知道他多大。 y <- NA # John 和 Mary 同岁吗? x == y #> [1] NA # 我们不知道!
如果你想判断一个值是否缺失,请使用 is.na():
is.na(x) #> [1] TRUE
filter() 只保留条件为 TRUE 的行;它会同时排除 FALSE 和 NA 值。如果你想保留缺失值,需要显式地要求它们:
df <- tibble(x = c(1, NA, 3)) filter(df, x > 1) #> # A tibble: 1 × 1 #> x #>