BookmarkSubscribeRSS Feed

SAS Macro - %LET

Started Monday by
Modified Monday by
Views 103

%LET 은 SAS 매크로 변수를 생성하고 값을 할당하는 Syntax입니다.

 

■ MACRO - %LET 선언

 

% LET 매크로변수 = 값;

 

%LET으로 선언하게 되면 매크로 내부 변수가 아니라 Global 변수로 선언하게 됩니다.

Global 변수란 SAS 세션 전체에서 접근 가능한 변수입니다. 세션 내 모든 매크로와 프로그램에서 공유되어 SAS 프로그램 어디에서든 참조 가능합니다.

 

 

 

■ MACRO - %LET 활용 예시 1

 

%let libname = sashelp;
%let data = air;

proc print data=&libname..&data;
run;

 

libname 매크로 변수에 'sashelp' 값을 할당하고, data 매크로 변수에는 air 값을 할당했습니다.

 

 

&libname..&data

 

위 코드에서 마침표가 두개가 있습니다.

첫번째 마침표는 매크로 변수의 끝을 의미하는 것이고, 두번째 마침표는 sas 라이브러리와 데이터셋을 구분하는 마침표입니다.

sashelp 라이브러리와 air 데이터는 Global 변수로 SAS의 모든 세션에서 사용할 수 있습니다.

 

 

■ MACRO - %LET 활용 예시 2

 

%macro test1;
	%let model = 'SUV';
	&put  Local variable model = &model;
%mend;

%put &model;

 

 

위 예시는 매크로 내부에서 %LET 매크로를 활용한 예시입니다.

이는 local 변수로 선언되어 매크로 내부에서만 활용할 수 있습니다.

 

 

 

image.png

 

 

 

■참고) %PUT

%PUT이란 메크로 안에서 메시지를 로그창에 출력하는 Syntax입니다.

주로 매크로 변수값을 확인하거나 디버깅하는 용도로 활용됩니다.

 

 

 

%MACRO test(var);
    %IF &var = %THEN %DO;
        %PUT WARNING: var 값이 비어 있습니다.;
    %END;
    %ELSE %DO;
        %PUT NOTE: var 값은 &var 입니다.;
    %END;
%MEND;

%test( );
%test(100);

 

 

 

 

 

 

 

 image.png

 

 

 

% MACRO ... %MEND 구문을 활용해서 test라는 매크로를 생성했습니다.

test 매크로는 매개변수 var을 입력해야합니다.

var이 비어있으면 &PUT 문을 활용해 로그창에 '값이 비어있습니다.' 라는 메시지를 출력합니다.

var 값이 있으면 로그창에 'var 값은 'var'입니다'라는 메시지를 출력합니다.

warning 과 note 메시지를 활용해 매개변수의 입력 여부를 체크할 수 있는 디버깅용 메크로 입니다.

 

 

Contributors
Version history
Last update:
Monday
Updated by:

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Article Tags