sum(is.na(census$wd))
它返回4205
但如果我选择:
sum(census$wd == NA)
它返回" NA"
我只是想了解最新情况。如果我做str(人口普查),wd会显示为:
$ wd : num NA 0.65 0.65 0.65 0.78 0.78 0.78 0.78 0.78 0.78 ...
有人可以解释为什么代码会返回不同的输出吗?谢谢!
答案 0 :(得分:3)
==
中的 R
是一个比较。但是您无法将某些内容与NA
中的R
进行比较,如以下?Comparison
州的引用:
缺失值(NA)和NaN值甚至被视为不可比较 对他们自己来说,所以涉及他们的比较总会导致NA。
相反,is.na
表示无论其类型如何都缺少哪些元素。
因此,它返回TRUE
和FALSE
条目的向量。
> a <- c(NA,1,2,3)
> a == NA
[1] NA NA NA NA
> is.na(a)
[1] TRUE FALSE FALSE FALSE
这就是sum
与is.na
合作的原因(解释TRUE=1
和FALSE=0
,但它无法总结NA
的向量(由==NA
)