我的循环只进行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