BookmarkSubscribeRSS Feed

[2-6] Macro Functions

Started ‎06-16-2020 by
Modified ‎06-16-2020 by
Views 248

[2-6] Macro Functions

 

안녕하세요^^

​오늘은 매크로 함수에 대해 알아보도록 하겠습니다.

매크로 함수는 data step의 문자열에 대한 함수와 비슷한 syntax를 갖고 있으며, 비슷한 결과를 만들어 냅니다.

​​

매크로 함수에는 여러 종류가 있습니다.

 

 

 

(1) %UPCASE

​%UPCASE는 소문자를 대문자로 바꾸는 함수를 말합니다.

 

 

(2) %SUBSTR

%SUBSTR은 문자에서 특정 문자를 추출하는 함수를 말합니다.

%SUBSTR(argument, position <,n>)

​- %substr 함수는 시작 위치로부터 n개의 문자까지 문자열의 부분을 반환합니다.

​- N이 정의되어있지 않으면 시작 위치로부터 문자열의 끝까지를 반환합니다.

 

SE22016071923545170.jpg

 SE22016071923550070.jpg

 

&Sysdate9로 system의 날짜를 저장합니다.

 

SE22016071923552070.jpg

SE22016071923552870.jpg

 

%substr함수를 통해서 &sysdate9 6번째 시작위치로부터 끝까지의 문자열을 반환합니다.

즉, 년도에 해당하는 2014를 반환합니다.

 

 

 

(3) %SCAN

%SCAN은 문자에서 단어를 추출하는 것을 말합니다.

%SCAN(argument, n <,delimiters>)

- %scan 함수는 delimiters에 의해 구분된 n번째 문자를 반환합니다

- ​n개의 단어의 조합이 아니라면 null이 반환됩니다.

 

 

SE22016071923571770.jpg

SE22016071923572470.jpg

 

&syslast로 바로 이전에 실행시켰던 data set 이름을 보여줍니다.

 

 

SE22016071923574170.jpg

SE22016071923574770.jpg

 

%scan함수를 통해서 &syslast의 period(.)를 기준으로 두 번째 문자를 반환합니다.

​즉, dsn은 HEART를 반환합니다.

 

 

 

(4) %INDEX

%INDEX는 특정한 텍스트에서 문자열의 위치를 찾는 함수를 말합니다.

 

 

 

(5) %EVAL

%EVAL(expression)

​- %eval함수는 수리나 논리적 연산을 수행합니다.

 

 

 

SE22016071923592670.jpg 

X에 2+2라는 연산을 수행합니다.

 

 

SE22016071923594170.jpg

결과적으로 x는 연산의 수행 결과인 4의 값을 얻게 됩니다.

 

  

SE22016071923595770.jpg

 

Thisyr이라는 매크로 변수로 &sysdate9의 년도를 추출합니다.

​또한, lastyr이라는 매크로 변수로 &thisyr 변수의 년도에서 22를 뺀 값을 저장합니다.

 

 

SE22016072000003670.jpg

 

Proc means 프로시저를 통해서

thisyr과 lastyr의 사이에 있는 년도의 DSIUSWIL이라는 변수의 min, max, mean값을 반환하는 결과를 냅니다. 

 

 

 

이상 매크로 함수에 대해 알아보았습니다.

Version history
Last update:
‎06-16-2020 06:06 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

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.


Register now!

Article Labels
Article Tags