作者MmmRrrrX (银色的灵魂)
站内Statistics
标题Re: [程式] sas loop
时间Wed Apr 7 02:09:58 2010
※ 引述《lsshno1 (朝右边锋迈进)》之铭言:
: 不好意思又来麻烦各位了,
: 我目前想要做这件事情:
: data examplea;
: set examplea;
: a1=y1;
: a2=lag(y2);
: a3=lag2(y3);
: a4=lag3(y4);
: a13=lag12(y13);
: a14=lag13(y14);
: run;
: 我参考之前west1996前辈的lagloop 巨集,
: 想编写如下:
: %macro alagloop;
: data examplea;
: set examplea;
: a1=y1;
: array y(13) y1-y13;
: %do i=1 %to 13;
: a{&i+1}=lag&i*(y{&i+1});
: %end;
: run;
: %mend;
: %alagloop;
: 程式却无法执行.
: 请大家帮我看一下哪里有错误, 谢谢!
因为y後面接的数字跟lag的次数不一样
这个没研究过要怎麽表示
只能提供你其他方法
data cc;
set aa aa;
x=0;
run;
%macro aa;
%do s=1 %to 14;
data cc;
set cc;
a&s=lag&s(y&s);
if a&s=. then a&s=0;
x=x+a&s;
run;
%end;
%mend;
%aa;
data cc;
set cc nobs=n;
t=_n_;
if 1<t<=n/2+1;
keep x a1-a14;
run;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.145.80
※ 编辑: MmmRrrrX 来自: 140.119.145.80 (04/07 02:23)
1F:推 tew:%eval 04/07 02:39