SAS - 检查列表中是否缺少任何变量的好方法是什么

Pek*_*kka 6 sas

我有数据集,我有时需要选择没有列表中的变量丢失的观察.

即我必须这样做.

Where E1 NE . and E2 NE . and E3 NE .
Run Code Online (Sandbox Code Playgroud)

或者我可以像这样轻松地做到这一点:

Where E1+E2+E3 NE .
Run Code Online (Sandbox Code Playgroud)

但SAS有什么方法可以做以下事情:

Where not missing(E1 - E3)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它就不起作用

where sum(of E1-E3) NE .
Run Code Online (Sandbox Code Playgroud)

因为那相当于

Where E1 NE . or E2 NE . or E3 NE .
Run Code Online (Sandbox Code Playgroud)

但我需要"和"而不是"或".


我还可以遍历数据集中的那些变量,并为选择构建变量,如:

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

但这也不是那么简单!

Rob*_*Liu 10

我想你可以使用函数nmisscmiss检查具有缺失值的列的确切数量.

对于数字列.e1-e3中没有列丢失.

if nmiss(of e1-e3) = 0
Run Code Online (Sandbox Code Playgroud)

对于数字/字符混合列.e1-e3中没有列丢失.

if cmiss(of e1-e3) = 0
Run Code Online (Sandbox Code Playgroud)