[2-6] Macro Functions
안녕하세요^^
오늘은 매크로 함수에 대해 알아보도록 하겠습니다.
매크로 함수는 data step의 문자열에 대한 함수와 비슷한 syntax를 갖고 있으며, 비슷한 결과를 만들어 냅니다.
매크로 함수에는 여러 종류가 있습니다.
(1) %UPCASE
%UPCASE는 소문자를 대문자로 바꾸는 함수를 말합니다.
(2) %SUBSTR
%SUBSTR은 문자에서 특정 문자를 추출하는 함수를 말합니다.
%SUBSTR(argument, position <,n>)
- %substr 함수는 시작 위치로부터 n개의 문자까지 문자열의 부분을 반환합니다.
- N이 정의되어있지 않으면 시작 위치로부터 문자열의 끝까지를 반환합니다.
&Sysdate9로 system의 날짜를 저장합니다.
%substr함수를 통해서 &sysdate9의 6번째 시작위치로부터 끝까지의 문자열을 반환합니다.
즉, 년도에 해당하는 2014를 반환합니다.
(3) %SCAN
%SCAN은 문자에서 단어를 추출하는 것을 말합니다.
%SCAN(argument, n <,delimiters>)
- %scan 함수는 delimiters에 의해 구분된 n번째 문자를 반환합니다
- n개의 단어의 조합이 아니라면 null이 반환됩니다.
&syslast로 바로 이전에 실행시켰던 data set 이름을 보여줍니다.
%scan함수를 통해서 &syslast의 period(.)를 기준으로 두 번째 문자를 반환합니다.
즉, dsn은 HEART를 반환합니다.
(4) %INDEX
%INDEX는 특정한 텍스트에서 문자열의 위치를 찾는 함수를 말합니다.
(5) %EVAL
%EVAL(expression)
- %eval함수는 수리나 논리적 연산을 수행합니다.
X에 2+2라는 연산을 수행합니다.
결과적으로 x는 연산의 수행 결과인 4의 값을 얻게 됩니다.
Thisyr이라는 매크로 변수로 &sysdate9의 년도를 추출합니다.
또한, lastyr이라는 매크로 변수로 &thisyr 변수의 년도에서 22를 뺀 값을 저장합니다.
Proc means 프로시저를 통해서
thisyr과 lastyr의 사이에 있는 년도의 DSIUSWIL이라는 변수의 min, max, mean값을 반환하는 결과를 냅니다.
이상 매크로 함수에 대해 알아보았습니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.