sas - 如何通过一系列变量删除 SAS 中的缺失值
问题描述
这是演示数据。
data faminc;
input famid faminc1-faminc12;
cards;
1 3281 3413 3114 2500 2700 . 3114 3319 3514 1282 2434 2818
2 4042 . . . . . 1531 2914 3819 4124 4274 4471
3 6015 . . . . . . . . . . .
;
run;
我想创建一个名为 fam_indicator 的指标变量。如果变量 faminc2-faminc12 全部丢失,则 fam_indicator=1。否则 fam_indicator=0。
我尝试了下面的代码,但没有成功。
data fam;
set faminc;
if missing(faminc2-faminc12) then fam_indicator=1;
else fam_indicator=0;
run;
解决方案
你可以用很多不同的方式来做到这一点。如果变量都是数字,那么n
将为您完成。
data fam;
set faminc;
if n(of faminc2-faminc12) eq 0 then fam_indicator=1;
else fam_indicator=0;
run;
cmiss
也nmiss
可以工作;cmiss
无论类型如何,都是通用的,而nmiss
仅适用于数字。他们会计算失踪的数量,所以你想要if cmiss(of faminc2-faminc12) eq 11
或类似的。
您需要的另一件事是of
. n(faminc2-faminc12)
只会从另一个中减去一个。 of
说“接下来是一个变量列表”,然后它将列表展开。