У меня есть серия похожих файлов, из которых мне нужно создать наборы данных SAS. Я хотел бы сделать макрос, который, учитывая имя файла в качестве параметра, может выводить шаг данных. Возможно ли это теоретически?Шаг данных внутри макрофункции
Я довольно новый для SAS, и я сделал этот простой пример:
%macro computeFormAndDomain(formName, domainName);
data thing;
input Name $;
datalines;
Bob
Jill
;
run;
%mend;
%computeFormAndDomain("test", "test2");
proc print data=thing;
run;
Однако это возвращает ошибку «ERROR: Макрос COMPUTEFORMANDDOMAIN генерироваться КАРТОЧКИ (строки данных) для шага DATA, что может привести к неправильные результаты. Шаг DDATA и макрос прекратят выполнение. " Какие корректировки нужно сделать или есть лучший способ добиться того, чего я хочу?
Вы не можете использовать утверждение карточки внутри макроса. Существуют и другие способы передачи данных в потоке в макрос. Это поможет узнать больше о том, что вы делаете. Я вижу, что у вас есть макрос с двумя параметрами, но вы не используете их, так что там история? –
@data_null_ Если вы не отправляете ответ в качестве ответа ;-) –
Просто для того, чтобы прояснить что-то: это не макро * функция *. Это * макрос *. Функция макросов не существует в SAS; макрос в стиле функции делает, но делает что-то совершенно другое (возвращает одно значение в открытом коде). – Joe