在一些情況下,向量的元素可能有殘缺。
當一個元素或者值在統計的時候“不可得到”(not available) 或者 “值丟失”
(missing value),相關位置可能會被保留
並且賦予一個特定的值 NA。
任何含有 NA 資料的運算結果都將是 NA。
這樣假設的道理很簡單,如果一次操作的資料都是
殘缺的,那麼結果也必然是不可預料的,因此也是
不可得到的。
函數 is.na(x) 返回一個和 x 同樣長度的向量。
它的某個元素值為 TRUE 當且僅當 x 中對應
元素是 NA。
> z <- c(1:3,NA); ind <- is.na(z)
特別要注意的是邏輯運算式 x == NA 和
is.na(x) 完全不同。因為 NA 不是一個真實的值
而是一個符號以表示某個量是不可得到的。因此 x == NA 得到的是
一個長度和 x 一致的向量。 它的 所有 元素的值都是 NA
因為該邏輯運算式本身不完整,因此也是不可判斷的。
還要注意數值計算會產生第二種“缺省”值,
也稱為 非數值(Not a Number),
NaN,
值。例如
> 0/0
或者
> Inf - Inf
二者都得到 NaN,這是因為它們的結果都不能顯式的定義。
總之,對於 NA 和 NaN 用 is.na(xx) 檢驗都是 TRUE。
為了區分它們,is.nan(xx) 就只對是 NaN 元素顯示
TRUE。
當字元向量以沒有引號的形式列印時1,
缺省值可能會以 <NA> 形式顯示。