作者west1996 (焦了六年变脆了)
看板Statistics
标题Re: [问题] SAS保留变数方法
时间Wed Jul 15 10:04:02 2009
※ 引述《eigenvalue (somnambulist)》之铭言:
: 目前遇到一些Do loop问题
: 程式码如下
: %MACRO SQL(num);
: %do i = 1 %to #
: PROC SQL;
: CREATE TABLE WORK.STACY AS SELECT
: ID,
: PAY&i AS DJC&i → 这里的话只会保留 i = 12
: FROM WORK.STACY1; 也就是只有DJC12 一个变数
: QUIT; 要如何完整保留12个变数
: %end;
: %MEND;
: %SQL(12);
: 不晓得还要加那些指令!
: 谢谢大家了!
我猜想这一段code的目的是要根据不同的情况从work.stacy1里面挑出variable数不定的
一个subset出来当作work.stacy,所以才需要使用macro(有误还请告知)
在原始code中,do loop作的是重复create 12次(for example) work.stacy这个table,
每一次create的时候都只有去抓相对应的那一个pay&i,所以最後看到的work.stacy当然
就是i=12时生成的那一个table,所以只会有ID,DJC12这两个变数
do loop的目的应该只是要连续生成DJC1~DJC12,所以只要包住"生成变数"这一个动作的
statement就好了,正确的手顺如下:
%macro SQL(num);
proc sql;
create table work.stacy as
select id
%do i=1 %to #
,pay&i as djc&i
%end;
from work.stacy1;
quit;
%mend;
%SQL(12)
--
刚刚试过,code是可以run的,如果我没理解错,应该也是你要的
如果有错还请告知
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.40.59