BookmarkSubscribeRSS Feed

SAS Macro - %MACRO

Started Thursday by
Modified Thursday by
Views 63

MACRO란 여러 개의 명령어 및 매개변수를 입력하게 되면 동적으로 코드를 생성해서 반복적인 작업을 자동화하고 코드를 재활용할 수 있는 코드 템플릿입니다.

아래와 같은 장점이 있습니다.

  • 코드 중복 제거

  • 유지보수 편의

  • 표준화된 분석 프로세스

  • 동적 프로그램 설계 가능

%MACRO

 

SAS 매크로의 가장 기본이 되는 구문으로 다음과 같이 정의(&MACRO) - 종료(&MEND) - 호출로 구성됩니다.

  • STEP1. % MACRO

    매크로 정의하는 Syntax로 매크로 이름과 매개변수를 설정합니다.

  • STEP2. %MEND

           매크로 정의를 종료합니다.

  • STEP3. 호출

■ 활용예제

 

%MACRO print_cars(dataset, car_type);
  PROC PRINT DATA=&dataset;
    VAR Make Model;
    WHERE Type = "&car_type";
    TITLE "차량 유형: &car_type";
  RUN;
%MEND;

 

 

위의 코드는 매크로를 정의 , 매크로 정의 종료 예제입니다.

  • %MACRO print_cars(dataset, car_type);

    • 매크로를 정의하는 구문으로 매크로의 이름은 print_cars 입니다.

    • 데이터 셋(dataset)과 차 유형(car_type)을 매개변수로 받습니다.

  • PROC PRINT
    • 데이터를 그대로 출력하는 프로시저
    • VAR make model : 출력할 변수를 지정해서 make(제조사)와 model(모델명)만 출력할 수 있게합니다.
    • WHERE Type = "&car_type";: 조건문으로 Type 변수가 car_type 과 같은 행만 출력할 수 있게 합니다. '&car_type'은 일반변수가 아니라 매크로 변수라는 것을 SAS가 인식할 수 있게 코드로 설정한 것 입니다.

  • %MEND

    • %MACRO 로 정의한 구문의 종료를 선언하는 명령문입니다.

MACRO 호출

 

%print_cars(SASHELP.CARS, SUV);

 

  • 선언한 MACRO 구문을 호출합니다.

  • [확장] 호출한 MACRO로 반복문을 활용해 데이터를 일괄 처리하거나 데이터 셋으로 저장할 수도 있으며 추가적인 통계 분석을 추가적으로 수행할 수 있습니다.

 

Contributors
Version history
Last update:
Thursday
Updated by:

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Article Tags