data work.combine(drop=totpay;
if _N_=1 then do until(last);
set sales.budget(keep=payroll) end=last;
end;
set sales.budget;
Percent=payroll/totpay;
run;
以上是我在一本书(SAS Certification Prep Guide: Base Programming for SAs 9, page339)上看到的程序,我觉得有问题,我想,它的目的应该是想用budget中最后一行的payroll值与totpy计算,但前面的值已被后面的值覆盖了,这样,循环就没意义。
如果把后一个set语句加是(drop=payroll),我觉得这样才达到目的。
有一种可能是它写在这里只是为了说明其他问题,而不是我猜测的那个逻辑。