Оператор output
не может указать динамическую таблицу назначения. Вам нужно будет создать код обоев для вывода в соответствующую таблицу на основе критериев разделения.
Ваш макрос должен будет создать макропеременные для поддержки этого шаблона кода
data &out1 &out2 … &outN;
set input_data;
select;
when (&case1) output &out1;
when (&case2) output &out2;
…
when (&caseN) output &outN;
otherwise;
end;
run;
Некоторые хитрые SQL могут поддерживать шаблон
data &outlist;
set input_data;
select;
&whenStatements;
otherwise;
end;
run;
Метод объекта хеша .output () может указать динамическое назначение для сохранения содержимого хеша. Рассмотрим случай «Разделить таблицу на таблицы подмножеств, имена которых основаны на значениях переменных» или «Разделить один набор данных на несколько наборов данных, названных в соответствии с групповой переменной». Некоторые методы требуют предварительного анализа данных (как в опубликованном вами коде), другие - нет.
Существует некоторый хеш-код разделителя на https://www.devenezia.com/downloads/sas/samples/hash-6.sas
Вы можете найти другие разделители данных в сообществе sas.