(前言:那個,由於本人不是專業的程式設計師,寫的內容可能不是很正確,還請大家多多包含/指教 :D)
前面提到,在R語言中,邏輯資料有主要有三種:TRUE
/FALSE
/NA
。今天要學的是**NA (Not available)**的部分,也就是缺失數據(統計學上又稱作「遺落值」)。
在R 語言裡,向量的某一個數值可以為NA,也就是缺失數據,寫法跟向量沒有什麼不同,只是把值寫成NA就好了。例:c(102, NA, 43)
。有缺失值的向量也可以做四則運算,只是有NA的地方,輸出也會是NA。(一個你餵什麼他吃什麼的概念XDD )
NA值要做檢定時,可以用is.na
函數對值進行邏輯檢查。若結果出現TRUE
表示該值為NA,FALSE
則表示該值不是NA。下面我寫了一個簡單的程式來試試看
執行結果如下:
可以看到在NA出現的地方邏輯檢驗結果都是TRUE,如果是一個隨機值則是FALSE。
這時如果想要計算tr有多少個NA時,先將剛剛的is.na(tr)
賦值到一個物件trna上,然後用sum
函數計算,例:
這個計算方法背後有一個大原則,就是R語言會將TRUE自動視為1,FALSE自動視為0。這時候用sum(trna)
看的是整個trna的加總,也就代表trna裡面有43個1 (TRUE),換句話說,1被加了43次,所以得出來43是trna的TRUE總數。
除了NA之外,R的缺失數據還包含了NaN 及Inf兩種缺失數據。**NaN (Not a Number)**代表的是「非數字」,例如我們在console裡輸入 0 / 0(零除以零),R給出的結果會是 NaN。另外,Inf代表的是「無限大」(infinity),如果將兩個 無限大相減,得出來的結果會是NaN。