批量处理变量,由于处理的步骤都是相同的,不想写多个if then语句,就想着用数组处理
为什么我用宏,用input函数转换成数值变量后,输出结果发现里面都是缺失值?
还有想问一下这样写代码有什么问题吗
set aaa;
%MACRO trans(kid,kid2);
&kid2=input(&kid,2.);
%mend trans;
%trans (f103a2,k1);%trans (f103b2,k2);%trans (f103c2,k3);%trans (f103d2,k4);%trans (f103e2,k5);%trans (f103f2,k6);%trans (f103g2,k7);
%trans (f103h2,k8);%trans (f103i2,k9);%trans (f103j2,k10);%trans (f103k2,k11);%trans (f103l2,k12);%trans (f103m2,k13);
array kid(*)f103a2 k1 k2 k3 k4 k5 k6 k7 k8 k9 k10 k11 k12 k13;
kid1=0;
array death(*) kid1 kid2 kid3 kid4 kid5 kid6 kid7 kid8 kid9 kid10 kid11 kid12 kid13;
do i=1 to 13;
if kid(i)=8 then delete;
else if kid(i)=1 then death(i)=0;
else death(i)=1;
end;
run;