%LET 은 SAS 매크로 변수를 생성하고 값을 할당하는 Syntax입니다.
% LET 매크로변수 = 값;
%LET으로 선언하게 되면 매크로 내부 변수가 아니라 Global 변수로 선언하게 됩니다.
Global 변수란 SAS 세션 전체에서 접근 가능한 변수입니다. 세션 내 모든 매크로와 프로그램에서 공유되어 SAS 프로그램 어디에서든 참조 가능합니다.
%let libname = sashelp;
%let data = air;
proc print data=&libname..&data;
run;
libname 매크로 변수에 'sashelp' 값을 할당하고, data 매크로 변수에는 air 값을 할당했습니다.
&libname..&data
위 코드에서 마침표가 두개가 있습니다.
첫번째 마침표는 매크로 변수의 끝을 의미하는 것이고, 두번째 마침표는 sas 라이브러리와 데이터셋을 구분하는 마침표입니다.
sashelp 라이브러리와 air 데이터는 Global 변수로 SAS의 모든 세션에서 사용할 수 있습니다.
%macro test1;
%let model = 'SUV';
&put Local variable model = &model;
%mend;
%put &model;
위 예시는 매크로 내부에서 %LET 매크로를 활용한 예시입니다.
이는 local 변수로 선언되어 매크로 내부에서만 활용할 수 있습니다.
■참고) %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);
% MACRO ... %MEND 구문을 활용해서 test라는 매크로를 생성했습니다.
test 매크로는 매개변수 var을 입력해야합니다.
var이 비어있으면 &PUT 문을 활용해 로그창에 '값이 비어있습니다.' 라는 메시지를 출력합니다.
var 값이 있으면 로그창에 'var 값은 'var'입니다'라는 메시지를 출력합니다.
warning 과 note 메시지를 활용해 매개변수의 입력 여부를 체크할 수 있는 디버깅용 메크로 입니다.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.