SAS Advanced programming 정리- SAS programming (12)

Hoya Jaeho Lee·2022년 8월 1일
0

SAS Advanced programming

목록 보기
12/17

Session-Compiled Macros

%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

Storing Macro Definitions in External Files

%include 'c:\sasfiles\prtlast.sas' /source2;

외부 파일에 저장 (매크로의 영구적인 사용 가능)
/source2 옵션은 log에 매크로 표시 기능

Listing the Contents of a Catalog

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

Using the Catalog Access Method

filename prtlast catalog 'sasuser.mymacs.prtlast.source';
%include prtlast;
proc sort data=sasuser.courses out=bydays;
by days;
run;
%prtlast

Accessing an Autocall Macro

options mautosource sasautos=('c:\mysasfiles',sasautos);
%prtlast

Creating a Stored Compiled Macro

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;

profile
Biostatistics researcher Github: https://github.com/hoyajhl

0개의 댓글