关于返回NAs的奇怪之处

时间:2014-08-12 21:41:59

标签: r sum na

我猜这是一个蹩脚的问题,但我不明白什么是幸福的。如果我去:

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 ...

有人可以解释为什么代码会返回不同的输出吗?谢谢!

1 个答案:

答案 0 :(得分:3)

==中的

R是一个比较。但是您无法将某些内容与NA中的R进行比较,如以下?Comparison州的引用:

  

缺失值(NA)和NaN值甚至被视为不可比较   对他们自己来说,所以涉及他们的比较总会导致NA。

相反,is.na表示无论其类型如何都缺少哪些元素。 因此,它返回TRUEFALSE条目的向量。

> a <- c(NA,1,2,3)
> a == NA
[1] NA NA NA NA

> is.na(a)
[1]  TRUE FALSE FALSE FALSE

这就是sumis.na合作的原因(解释TRUE=1FALSE=0,但它无法总结NA的向量(由==NA