Существует множество применений и расширенных функций макросов, но я в основном просто использую их, чтобы попытаться остаться верным DRY Princicple .Если вы оказались в ситуации, когда вы часто повторяете блоки кода, возможно, вы захотите сделать это.Например, я экспортирую наборы данных, чтобы все время превосходить.Если в конечном итоге я делаю это несколько раз в своем коде, я просто помещаю код в макрос:
%macro export_set_excel(data,path,filename,sheetname);
PROC EXPORT DATA= &data. OUTFILE= "&path.&data." DBMS=EXCEL REPLACE;
SHEET="&sheetname.";
NEWFILE=YES;
RUN;
%mend export_set_excel;
Затем, когда я продвигаюсь в своем коде.Я делаю набор данных и хочу экспортировать его, я могу просто написать:
%export_set_excel (data=MyDataSet, path=C:\Temp\, filename=mydata.xlsx, sheetname=exportedData);
Это одна простая строка, которую я должен написать 30 раз в одном файле вместо того, чтобы писать 7 или 8 строк 30раз.Это помогает отследить ошибки, и если я хочу что-то изменить в том, как я экспортирую, я просто должен изменить это в одном месте.
Я использую его для гораздо большего, чем просто для экспорта, но это должно дать вам общее представление.
Если вы знакомы с другими языками, вы найдете, что язык макросов sas довольно отсутствуетгромоздким, но это определенно лучше, чем ничего.