如下面代码,用宏的时候结果就出错,不知道问题所在,请高人指点。
%macro para(p1,p2);
data arima_2_1_0;
t1=0;
t2=0;
t3=0;
%do time=-50 %to 200;
t=(&p1.+1)*t1+(&p2.-&p1.)*t2-&p2.*t3+rannor(1234);
%if time>0 %then %put;
t3=t2;
t2=t1;
t1=t;
%end;
run;
%mend;
%para(0.2,0.5);
不用宏可以实现。
data arima_2_1_0;
t1=0;
t2=0;
t3=0;
do time=-50 to 200;
t=(0.2+1)*t1+(0.5-0.2)*t2-0.5*t3+rannor(1234);
if time>0 then output;
t3=t2;
t2=t1;
t1=t;
end;
run;