Я ищу способ использовать ряд значений для параметра макроса вместо одного значения. Я в основном манипулирую серией файлов в течение последовательных месяцев (с мая 2014 года по сентябрь 2015 года), и я написал макрос, чтобы воспользоваться соглашениями об именах. Тем не менее, я все еще вручную записываю месяцы, чтобы использовать макрос. Я делаю это много раз с большим количеством разных файлов с этого месяца. Есть ли способ привязать параметр к списку значений и пройти через них как массив/do-loop? Я просмотрел% 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; и получить один из данных с будет все подсчеты. –