我的循環只進行1次迭代。我應該創建三個宏變量:var1 = Month1,var2 = Month2,以及var3 = Month3 if qtr = qtr1。當我用Put語句檢查它時,我的循環只創建var1 = Month1和I = 1。這只是一個迭代,所以我不知道我做錯了什麼。宏直到循環在SAS
%Let qtr = qtr1;
%Macro Firstqtr(qtr);
%Let I = 1;
%If &qtr = qtr1 %then %do %until (&I > 3);
%Let var&I = Month&I;
%let I = %eval(&I + 1);
%end;
%Mend Firstqtr;
%Firstqtr(qtr);
您發佈的程序將永遠不會運行%DO循環,因爲%IF語句中的條件將爲FALSE。 – Tom