SAS中文论坛

标题: 请教宏的一个问题 [打印本页]

作者: shiyiming    时间: 2009-8-30 10:10
标题: 请教宏的一个问题
有变量"r",我想实现r1=lag51(r)  一直到 r51=lag(r);以及m1=r1;m2=m1*r2;一直到 m51=m50*r51;
如何用宏实现。谢谢...........
作者: shiyiming    时间: 2009-8-30 10:35
标题: Re: 请教宏的一个问题
[code:1ylumi8r]%macro lag(inds,outds);
        %let max=51;
        data &outds;
                retain r r1-r&max m1-m&max;
                set &inds;
                %do i=1 %to &max;
                        r&i=lag%eval(&max+1-&i)(r);
                        %if &i=1 %then %do; m&i=r&i; %end;
                        %else %do; m&i=m%eval(&i-1)*r&i; %end;
                %end;
        run;
%mend;

data temp;
        do r=1 to 100;
                output;
        end;
run;

%lag(temp,temp2)[/code:1ylumi8r]
作者: shiyiming    时间: 2009-8-30 11:08
标题: Re: 请教宏的一个问题
谢谢!!




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2