在使用cmiss函數求行缺失個數時,需要注意的一個地方:
data a;
v1=.;v2='';x=3;output;
v1=1;v2='a';x=2;output;
v1=3;v2='';x=.;output;
v1=.;v2='b';x=2;output;
run;
data b;
set a;
sum_miss=cmiss(of _all_);
當我們使用sum_miss=cmiss(of _all_)時,會發現缺失值的個數比實際缺失值個數要多一個:
如果改使用sum_miss=cmiss(of v1--x)時:
sum_miss=cmiss(of v1--x);
結果發現缺失值個數跟實際缺失值個數保持一緻:
從結果我們可以看到用_all_時,比v1--x多了一個變量的缺失值,為了查明原因,我們采用put語句進行調試:
put _all_;
結果如下所示:
是以可以看到多出的那個變量缺失值是sum_miss,是以為了避免這種情況出現,我們可以用retain語句給sum_miss初始化:
retain sum_miss 0;
從上述結果可以看到缺失值個數統計跟實際缺失值個數保持一緻。