SAS Macro

SAS Macro 매크로 언어, 매크로 변수 %LET

카이집사_Stats 2025. 5. 25. 20:45

매크로 언어명령어(command), 선택사항 (option), 문법 (syntax), 번역기 (complier) 등으로 이루어져 있다.

유연한 코드를 만드는 도구로서, 여러 단계들 간의 정보 전달하여 동적인 코드 (code) 생성시켜서 조건적 데이터 또는 프로시저 단계 수행 및 일반화시키는 강력한 도구가 된다. 
 
매크로 변수는 상징변수 (symbolic variable)라고도 표현을 하지만 그렇게 불리우지는 않는다. 

매크로 변수는 임시 저장장소가 되어 일단 정의되고 나면  SAS 프로그램을 실행하는 동안 많은 다른 값을 가질 수 있는데, 변수이름을 정할 때에는 SAS data set 이나 변수이름을 정의하는 규칙 그대로 적용하면 된다. 

 

매크로 변수 정의 방법 중, 쉬운 방법은 %LET 문을 이용하는 것이다. 

%LET macro-variable-name = value;

macro-variable-name    매크로 변수이름

value   매크로 변수에 할당되는 값 (value 에는 인용부호를 사용하지 않음)

 

정의된 매크로 변수를 참조하거나 호출하기 위해서는 & 매크로 변수명 앞에 사용한다. 

&macro-name

 

[Example] 매크로 변수정의와 호출에 대한 단순한 예 

%LET fer=exchange;
PROC PRINT;
  TITLE "Foreign &fer rate";
RUN;

 

Note. TITLE 문에서 단순인용부호를 사용하는 경우 SAS &fer 를 하나의 문자열로 처리하게되니, 매크로 작성 시에는 " " 를 이용하여 나타내어야 한다. 

 

[Example] 참조되는 데이터셋 이름을 매크로 변수로 처리 

DATA exchange:
  INPUT currency $ buying selling basic;
CARD;
dollar 1577 1708 1642.5
yen 1229 1331 1280.0
pound 2589 2805 2697
;
RUN;
%LET fer=exchange;
DATA temp;
  SET &fer;
RUN;