Можно ли условно напечатать выписки во внешний программный файл SAS? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть следующий код, я пытаюсь сгенерировать автономный код из макроса (записанного во внешний файл sas).Однако по умолчанию полный код генерируется и записывается во внешний файл.Я хотел бы знать, если есть способ, которым можно контролировать, какие части макроса записываются во внешний файл.Цените всю помощь, которую я могу получить в этом.

%macro tempmacro(outds=);

/* I dont want this following code to be printed */
    proc sql noprint;
        SELECT cats(name,"=",substr(name,2))
        INTO :renames SEPARATED BY " "
        FROM dictionary.columns
        WHERE LIBNAME="SASHELP" AND MEMNAME=upcase('BASEBALL');
    quit;

/* I only Want this following data step printed to the external file */
data &outds;
set sashelp.baseball;
rename &renames;
run;

%mend;


options mfile mprint;
filename mprint "D:\test_code.sas";
data _null_;
file mprint;
%tempmacro(outds=data1);
options nomfile nomprint;
run;

1 Ответ

0 голосов
/ 01 октября 2018

Установите option nomprint перед вашим proc sql, а затем option mprint после, чтобы восстановить его.Для получения бонусных очков UX проверьте значение параметра перед использованием %sysfunc(getoption(mprint)) в начале макроса, а затем восстановите его до того же значения.

...