|
楼主

楼主 |
发表于 2011-9-7 11:35:03
|
只看该作者
请教一个MACRO程序
想写一个MACRO来随意改变group ID(由几个变量组成)的构成成分,即希望这个group ID能随意的增加或减少变量.比如:
data a;
input x1 x2 x3 x4 x5 x6 y;
group_id=cats(x1,x2,x3,x4);/*通常由x1,x2,x3,x4组成group_id*/
cards;
1 2 3 4 5 6 10000
...
;
run;
但有些情况下,要求能用不断的变化的group_id来分别计算一些结果.
e.g.,
%macro gpd(datain=,dataout=,include=,exclude=);
/*但有时候需要改变group_id,通过增加其他变量或减少其组成变量来实现*/
...
%mend;
比如要求:
1.要增加x5和x6进入group_id(此时group_id由x1,x2,x3,x4,x5,x6组成),可以通过下面来实现:
%gpd(datain=a,dataout=b, include=x5 x6, exclude=)
2.要从正常的group_id中减少x2和x3(此时group_id仅由x1,x4组成),可以通过下面来实现:
%g(datain=a,dataout=b,include=, exclude=x2 x3)
请问这个MACRO改如何写,从而能改变这个grouo_id?
谢谢! |
|