我對編碼和SAS一般都很陌生。我試圖創建一系列與行數對應的KPI圖表,但下面的循環代碼不斷爲最後一行創建兩個相同的GPKI圖表。爲什麼會這樣?任何幫助將不勝感激。爲什麼SAS GKPI不斷爲最後一行創建2個GKPI圖表?
感謝
%Macro scanloop (scanfile,field1,field2,field3);
data _null_;
if 0 then set &scanfile nobs=X;
call symput ('Count',X);
stop;
run;
%DO I=1 %To &count;
Data _null_;
set &scanfile (firstobs=&I);
call symput('Client', &field1);
call symput('LossRatio', &field2);
call symput('Target', &field3);
stop;
run;
proc gkpi mode=raised;
speedometer actual=&LossRatio bounds=(0 .2 .4 .6 .8 1)/
target=&Target label="&field1 KPI" nolowbound format="percent8.0"
afont=(f="Albany AMT" height=.5cm)
bfont=(f="Albany AMT" height=.4cm) ;
Run;
%end;
%MEND SCANLOOP;
%scanloop (work.Test, Client,LossRatio,Target);run;
這真的是使這些圖表的方式?也許他們不能通過使用BY語句來創建?這種宏觀循環非常低效,容易出錯。 – Joe