
在R語言中,缺失值用 NA 表示,空值用 NULL 表示。初學者在學習R語言時,一般都會被這兩者弄糊塗,常常錯誤地把這兩者視為等價的。
下面,通過代碼演示來說明它們的不同:
首先看 NA :
x <- vector(length=
3); x
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
x <-c(NA,NA,NA)
;
x
[1] NA NA NA
length(x)
[1] 3
再看NULL:
x <- vector(length=
3); x
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
x <- c(NULL,NULL,NULL)
;
x
NULL
length(x)
[1] 0
從上面可以看出,NA與NULL的差別還是非常明顯的。用一個比喻來講,NA是已經挖好了一些坑,只是里面沒有蘿卜而已,這就是所謂的“缺失值”。而NULL則指的是“壓根連坑都沒有”。一個元素值全為NA的向量,它的長度是存在的,就等於元素的個數。而如果把一個向量的所有元素的值都設為NULL,這個向量就變成了“空值”,其長度為0,表明“空無一物”。
所以說,NULL比NA更悲劇。
【參考資料】
薛毅,R語言與統計建模