data;
date0='01mar1997'd;
date1='17Jul1997'd;
date2='01sep1997'd;
days02=datdif(date0,date2,'30/360');
days12=datdif(date1,date2,'30/360');
n=2*(2003-1997);
w=days12/days02;
call symput('n',n);
call symput('w',w);
data a;
delete;
%macro a(r);
data a1;
pl=0;
%do i=1 to &n;
p1=p1+5/(1+&r)**(i-1+&w);
output;
end;
data a1;
set a1 end=lasobs;
if lasobs;
p2=100/(1+&r)**(&n-1+&w);
p=p1+p2;
r=200*&r;
r1=100*&r;
data a(drop=i);
set a a1;
w=&w;
n=&n;
%mend a;
%a(0.0363);
proc print data=a;
run;
这段程序编译没有通过-ERROR: 在 %DO 语句中未找到期望的 %TO,将编译哑宏。
原因出在call symput程序上,请大家帮忙,如何改正。谢谢



雷达卡



京公网安备 11010802022788号







