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”