Макросы SAS для сохранения и перечисления всех макросов в сеансе - PullRequest
0 голосов
/ 26 апреля 2018

Я хотел бы сохранить все макросы, определенные как часть упражнения, и перечислить все макросы.У меня есть 6 макросов, которые я хочу сохранить и извлечь в этом сеансе:

%macro one(a,b,c)
%macro gchart(dseti,Weight,Gender)
%macro plot(dsetin,height,weight)
%macro one(a,b,c,strtpt,endpt)
%macro test
%macro name(dsetin,year,revenue)
%macro import_myfile(i=)

У меня есть код ниже и сообщение об ошибке следует за ним.

options mstored sasmstore=macross; 
libname mjstore "C:\Users\komal\Desktop\Advanced SAS"; 
 proc catalog cat=mjstore.macross;
      contents;
      title "Default Storage of SAS Macros";
     quit

Error: Catalog "MJSTORE.MACROSS" not found

Пожалуйста, дайте мне знать вашсовет как решить это.Спасибо за ваше время.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Лучший способ узнать, какие макросы были определены во время вашей программы, это не использовать сохраненные параметры каталога макросов. Вместо этого просто позвольте SAS по умолчанию хранить их в рабочем каталоге. Затем вы можете использовать PROC CATALOG, чтобы увидеть, какие макросы были скомпилированы. Обычно это каталог WORK.SASMACR, но если вы используете альтернативные способы запуска SAS (Enterprise Guide, SAS / Studio, серверы хранимых процессов и т. Д.), Это может быть каталог WORK.SASMACR1.

proc print data= sashelp.vcatalg width=min;
  where libname='WORK' and memname='SASMACR'
    and memtype='CATALOG' and objtype='MACRO'
  ;
  var objname modified objdesc ;
run;

Если вы используете макросы autocall, более новые версии SAS сохранят имя файла в поле OBJDESC в метаданных. В противном случае здесь есть ссылка на макрос, который сгенерирует список скомпилированных макросов и попытается сопоставить их с соответствующим исходным файлом из библиотеки autocall или других каталогов, которые вы можете предоставить. https://github.com/sasutils/macros/blob/master/maclist.sas

0 голосов
/ 26 апреля 2018

Каталог по умолчанию - WORK.SASMACR

%macro one(a,b,c); %mend;
%macro gchart(dseti,Weight,Gender); %mend;
%macro plot(dsetin,height,weight); %mend;
%macro one(a,b,c,strtpt,endpt); %mend;
%macro test; %mend;
%macro name(dsetin,year,revenue); %mend;
%macro import_myfile(i=); %mend;

proc catalog cat=work.SASMACR;
   contents;
   title "Default Storage of SAS Macros";
   quit;
...