2013-05-26 85 views
8

我正在使用R生成如何處理我正在教的統計類缺失數據的示例。一種方法需要生成「缺失值二進制變量」,其中0表示包含缺失值的情況,1表示沒有缺失值。例如R-生成「缺失值變量」

對於
n X Y Z 
1 4 300 2 
2 8 400 4 
3 10 500 7 
4 18 NA 10 
5 20 50 NA 
6 NA 1000 5 

我想生成一個變量M,這樣

n m 
1 1 
2 1 
3 1 
4 0 
5 0 
6 0 

看來這應該是簡單的,給定的R的處理缺失值的能力。我發現的最接近的是m <-ifelse(is.na(missguns),0,1),但所有這些都會生成一個新的整數據矩陣,其中0或1表示缺失。但是,我只想要一個變量指示行是否包含缺失值。

回答

9

complete.cases確實如你所願。

complete.cases(x) 
## [1] TRUE TRUE TRUE FALSE FALSE FALSE 

您可以強制到數字或整數:

as.integer(complete.cases(x)) 
## [1] 1 1 1 0 0 0 
+0

感謝,認爲沒有的伎倆!就像更新一樣,我正在實施Rubin的t檢驗。這裏是我生成的代碼。數據集是「missguns」(「槍支」數據集,但我包含缺失值),其中一個變量是「城市」。缺少<-as.integer(complete.cases(missguns)) practice <-cbind(missguns,missing) missing <-practice [practice $ missing == 0,] complete <-practice [practice $ missing == 1 ,] t.test(缺少$ urban,完成$ urban) –