Next: , Previous: Logical vectors, Up: Simple manipulations numbers and vectors



2.5 缺省值

在一些情况下,向量的元素可能有残缺。 当一个元素或者值在统计的时候“不可得到”(not available) 或者 “值丢失” (missing value),相关位置可能会被保留 并且赋予一个特定的值 NA任何含有 NA 数据的运算结果都将是 NA。 这样假设的道理很简单,如果一次操作的数据都是 残缺的,那么结果也必然是不可预料的,因此也是 不可得到的。

函数 is.na(x) 返回一个和 x 同样长度的向量。 它的某个元素值为 TRUE 当且仅当 x 中对应 元素是 NA

     > z <- c(1:3,NA);  ind <- is.na(z)

特别要注意的是逻辑表达式 x == NAis.na(x) 完全不同。因为 NA 不是一个真实的值 而是一个符号以表示某个量是不可得到的。因此 x == NA 得到的是 一个长度和 x 一致的向量。 它的 所有 元素的值都是 NA 因为该逻辑表达式本身不完整,因此也是不可判断的。

还要注意数值计算会产生第二种“缺省”值, 也称为 非数值(Not a Number), NaN值。例如

     > 0/0

或者

     > Inf - Inf

二者都得到 NaN,这是因为它们的结果都不能显式的定义。

总之,对于 NANaNis.na(xx) 检验都是 TRUE。 为了区分它们,is.nan(xx) 就只对是 NaN 元素显示 TRUE 当字符向量以没有引号的形式打印时1, 缺省值可能会以 <NA> 形式显示。


Footnotes

[1] 译者注:我没遇到过这种情况,所以也不知有没有译错。原文为“when character vectors are printed without quotes”