我正在尋找一種方法來爲宏參數使用一系列值而不是單個值。我基本上是在連續幾個月裏操作一系列文件(2014年5月到2015年9月),我寫了一個宏來利用命名約定。但是,我仍然手動編寫出使用宏的月份。我從這個月開始用很多不同的文件做了很多次。有沒有辦法讓參數引用一個值列表並像數組/循環一樣通過它們?我已經將%ARRAY看作是一種可能性,但似乎並沒有做我正在尋找的東西,除非我沒有看到它是全功能的。我在下面附上了這段代碼的示例。爲SAS宏參數使用一系列值
%MACRO memmonth(monyr=);
proc freq data=work.both_&monyr ;
table var1/ out=work.mem_&monyr;
run;
data work.mem_&monyr;
set work.mem_&monyr;
count_&monyr=count;
run;
%MEND memmonth;
%memmonth(monyr=may14)
%memmonth(monyr=jun14)
%memmonth(monyr=jul14)
%memmonth(monyr=aug14)
%memmonth(monyr=sep14)
%memmonth(monyr=oct14)
%memmonth(monyr=nov14)
%memmonth(monyr=dec14)
%memmonth(monyr=jan15)
%memmonth(monyr=feb15)
%memmonth(monyr=mar15)
%memmonth(monyr=apr15)
%memmonth(monyr=may15)
%memmonth(monyr=jun15)
%memmonth(monyr=jul15)
%memmonth(monyr=aug15)
%memmonth(monyr=sep15)
我將結合MMMYY數據集並使用INDSNAME = variable SET語句選項創建一個新變量。然後你可以運行PROC FREQ BY MONYR;並得到一個數據與所有的計數。 –