0
我有一个数据集,其中一些SAS Datastep逻辑是 ,需要填充缺失的列或从退出的列派生。需要SAS宏程序以避免重复
数据集看起来更像以下:
mpi v1 v2 v3......v9 v10 v11.....v50
001 a 1.324
002 c 0.876
003 f 11.9
004 r 5.7
005 b 3.3
. . .
. . .
n t 0.4
我的发展其实下面的程序:
/*a*/
IF v2 ('a') AND 0 <= v11 <= 2 THEN DO;
v13 = 1;
v14 =20;
END;
IF v2 IN ('a') AND 2 < v11 <= 3.1 THEN DO;
v13 = 2;
v14 =40;
END;
IF v2 IN ('a') AND 3.1 < v11<= 5.3 THEN DO;
v13 = 3;
v14 =60; END;
IF v2 IN ('a') AND 5.3 < v11 <= 11.5 THEN DO;
v13 = 4;
v14 =80;
END;
IF v2 IN ('a') AND v11 > 11.5 THEN DO;
v13 = 5;
v14 =100;
END;
我的要求是,我需要写相同的程序来填充V13和V14时V2 IN c
,f
,t
,r
等;但对于v11中的绑定有不同的参数(对于c
,e
,g
,...分开),而v13和v14对类别保持不变。
我想使用SAS宏来完成这项工作,以避免重复的程序。你能帮忙吗?
感谢Joe提供的富有洞察力的程序,我想相信为程序制作一个宏是不可能的。 – Dapsy 2013-02-19 19:14:40