BookmarkSubscribeRSS Feed

[3-1] Defining and Calling a Macro

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

 

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에 작성된 것을 볼 수 있습니다.

 

 

 

 

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

 

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

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

Article Labels
Article Tags