2014-12-04 67 views
5

我有數據集,有時需要選擇列表中沒有變量缺失的觀察值。SAS - 什麼是檢查列表中的任何變量是否缺失的好方法

即我必須這樣做。

Where E1 NE . and E2 NE . and E3 NE . 

或者我可以更容易地做到這一點有點像這樣:

Where E1+E2+E3 NE . 

但有在SAS任何方式做類似:

Where not missing(E1 - E3) 

如果我這樣做不起作用

where sum(of E1-E3) NE . 

因爲這相當於

Where E1 NE . or E2 NE . or E3 NE . 

但我需要的 「和」,而不是 「或」。


我也能遍歷數據集中的這些變量,並建立一個變量的選擇,如:

array E E1-E3; 
misind = 0; 
do i=1 to dim(E); 
    if E(i) = . then misind = 1; 
end; 

但是,這不是那麼簡單要麼!

回答

9

我認爲您可以使用函數nmisscmiss來檢查缺少值的列的確切數量。

用於數字列。 e1-e3中沒有列丟失。

if nmiss(of e1-e3) = 0 

數值/字符混合列。 e1-e3中沒有列丟失。

if cmiss(of e1-e3) = 0 
+0

這就是我該怎麼做的。 – Joe 2014-12-04 15:06:33

+0

對於我而言,nmiss或cmiss函數在Where子句中不起作用。我只能在像x = nmiss(e1-e3)這樣的數據步驟中使用它們。難道我做錯了什麼? – Pekka 2014-12-05 10:54:50

+0

@皮卡對不起,我的錯。在這裏你必須使用'if'。 – 2014-12-05 11:19:21

相關問題