%macro prtlast;
%if &syslast ne NULL %then %do;
proc print data=&syslast(obs=5);
title "Listing of &syslast data set";
run;
%end;
%else
%put No data set has been created yet.;
%mend
By default, the Prtlast macro is stored in a temporary SAS catalog as Work.Sasmacr.Prtlast.Macro.
Temporary SAS catalog: session compiled macros
-영구적이지 않고 임시적인 매크로
-Work.Sasmacr.Prtlast.Macro에 저장됨
아래와 같이 그 세션안에서 임시적인 매크로로 바로 적용 가능!!
proc sort data=sasuser.courses out=bydays;
by days;
run;
%prtlast
%include 'c:\sasfiles\prtlast.sas' /source2;
외부 파일에 저장 (매크로의 영구적인 사용 가능)
/source2 옵션은 log에 매크로 표시 기능
proc catalog cat=work.sasmacr;
contents;
title "Default Storage of SAS Macros";
quit;
filename prtlast catalog 'sasuser.mymacs.prtlast.source';
%include prtlast;
proc sort data=sasuser.courses out=bydays;
by days;
run;
%prtlast
options mautosource sasautos=('c:\mysasfiles',sasautos);
%prtlast
libname macrolib 'c:\storedlib';
options mstored sasmstore=macrolib;
%macro words(text,root=w,delim=%str( ))/store;
%local i word;
%let i=1;
%let word=%scan(&text,&i,&delim);
%do %while (&word ne );
%global &root&i;
%let &root&i=&word;
%let i=%eval(&i+1);
%let word=%scan(&text,&i,&delim);
440 Chapter 12 • Storing Macro Programs
%end;
%global &root.num;
%let &root.num=%eval(&i-1);
%mend words;