楼主: 大憨熊猫
2415 11

[原创博文] 求助SAS宏问题 [推广有奖]

11
大憨熊猫 发表于 2010-8-19 16:51:44
明白了,很受用,太感谢你了!我真是才疏识浅啊,还需努力。

12
bobguy 发表于 2010-8-21 10:09:42
soporaeternus 发表于 2010-8-19 15:50
%macro t;
data b(keep=%do i=1 %to 132 %by 1;A&i B&i%end;);
set a1;
run;
%mend t;
%t;

记得宏只是文本替换
简单的宏完全可以人工解析出来自己看运行机制
楼上这段代码data步执行了132次,第&i次仅保留A&i和B&i变量
由于生成集都叫a
故后次覆盖前次
最后次就保留了A132和B132
If you want to data step, it could be as simple as,

data t1;
  retain a1-a20 0;
  output;
run;

data t2;
   set t1(rename=(a1-a20=b1-b20));
run;

data t3;
   set t1;
   rename a1-a20=b1-b20;
run;

It is fine if the data set is small. The more efficient one in such a case is to use SAS utility procedure proc datasets.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 12:57