BookmarkSubscribeRSS Feed

[3-1] Defining and Calling a Macro

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

 

3.1 Defining and Calling a Macro

안녕하세요^^

오늘은 매크로의 정의와 간단한 매크로를 실행시켜보도록 하겠습니다.

​​매크로 프로그램은 다음과 같은 기본 코드로 작성할 수 있습니다.

 

 

1) 매크로 정의

 

 

%MACRO macro-name;

           Macro-text;

%MEND ;

​Macro-name이나 macro-text는 다음과 같을 수 있습니다.

​- 텍스트 문장

- SAS 문장이나 SAS STEP

- 매크로 참조 변수

- 매크로문, 수식 등

- 위의 사항의 조합들

​단, 매크로 문장이나 함수의 이름(LET/ SCAN 등)을 매크로의 이름으로 사용할 수 없습니다.

MCOMPILENOTE=ALL 옵션은 매크로가 정의된 후에 SAS 로그창에 정의를 남겨주는 옵션입니다.

일반적으로 사용되는 옵션의 형태는 다음과 같습니다.​

 

 OPTIONS MCOMPLIENOTE=ALL | NONE;

MCOMPILENOTE의 default는 NONE입니다.

​예를들어, 아래의 코드를 보며 MCOMPLIENOTE 문장의 차이를 비교해봅시다.

 

 

 

SE22016081900452670.jpg

 

default값인 MCOMPILENOTE=NONE; 옵션으로 문장을 실행하면,

SAS 로그창에 아무런 내용 없이 결과를 보여줍니다. 

 

 

SE22016081900455270.jpg

 

그에 비해, MCOMPILENOTE=ALL; 옵션으로 문장을 실행하면,

SAS 로그창에 매크로 정의가 기록되며 같은 결과를 보여줍니다

 

 

 

2) 매크로 저장

​매크로의 저장은 default로 work라이브러리의 sasmacr로 일시적으로 저장됩니다.

​따라서 위의 매크로를 실행시킨 후 아래와 같은 프로시저를 실행시킨다면 다음과 같은 결과를 얻을 수 있습니다.

 

 

SE22016081900464470.jpg

 

 , work 라이브러리에 있는 sasmacr catalog 프로시저를 실행시킵니다.

 

 

SE22016081900465770.jpg

 

결과는 sasmacr에 저장된 매크로의 이름과 생성일, 수정일이 함께 기록됩니다.

 

 

 

3) 매크로 선언

매크로 선언의 기본적인 코드는 다음과 같습니다.

 %macro--name;

 

​​매크로의 이름 앞에 퍼센트(%)를 붙여서 매크로를 선언합니다.

​매크로 변수의 참조처럼 프로그램의 어디에서나 사용될 수 있습니다.

​TIME 매크로를 선언해 보겠습니다.

 

 

 

SE22016081900483370.jpg

 

앞서 말씀드린 것처럼 매크로 이름 앞에 %를 붙여 매크로를 선언합니다.

 

 

SE22016081900484970.jpg

 

로그창을 살펴보면 %TIME 매크로의 결과를 볼 수 있습니다.

 

 

 

4) 간단한 매크로

​Proc means 프로시저를 실행하는 간단한 매크로를 작성해보도록 하겠습니다.

 

 

SE22016081900492870.jpg

 

Proc means 프로시저를 실행하는 매크로로 %stats를 let문으로 선언하여

min(최솟값), max(최댓값)을 결과로 가져오는 매크로를 작성하였습니다.

 

 

SE22016081900494870.jpg

 

그 결과, weight 변수에 대해 최솟값과 최댓값을 결과로 얻게 되었습니다.

 

 

MPRINT 옵션은 SAS 로그창에 매크로 실행 시 매크로 실행 문장이 작성되는 옵션입니다.

​MPRINT와 NOMPRINT 옵션의 일반적인 코드의 구성은 다음과 같습니다.

 OPTIONS MPRINT;

​ OPTIONS NOMPRINT;

Default 값은 nomprint입니다.

​Mprint 옵션을 사용한 예제를 살펴보겠습니다.

 

 

 

SE22016081900510570.jpg

 

앞서 실행시켰던 calc 매크로를 mprint 옵션을 사용하여 실행시켜보겠습니다.

 

 

SE22016081900511970.jpg

 

그 결과는 로그창을 살펴보면 알 수 있습니다.

​Proc means 프로시저의 내용이 mprint에 작성된 것을 볼 수 있습니다.

 

 

 

 

 이상으로 매크로의 정의와 선언간단한 매크로에 대해 알아보았습니다. 

 

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