이전 게시글에서는 SAS 매크로의 기본인 %MACRO 선언에 대해 살펴보았습니다.
이번 글에서는 %MACRO의 다양한 활용 방안부터, 이를 확장하여 자동화된 분석 시스템으로 발전시킬 수 있는 방법까지 알아보겠습니다.
%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라는 이름으로 메크로를 정의하고 있습니다.
%print_cars(sashelp.cars, SUV);
위와 같이 매개변수로 데이터셋과 SUV (차량 모델)을 입력하게 되면 해당 데이터의 정보만 출력하게 됩니다.
필터링된 결과를 새 데이터셋으로 저장할 수 있습니다. 이는 추후 분석을 위한 데이터 준비에 활용할 수 있습니다.
%MACRO save_filtered_cars(dataset, car_type, output_name);
DATA &output_name;
SET &dataset;
WHERE Type = "&car_type";
KEEP Make Model Type MSRP MPG_City MPG_Highway;
RUN;
PROC PRINT DATA=&output_name;
TITLE "저장된 데이터: &car_type";
RUN;
%MEND;
saved_filtered_cars 라는 이름으로 매크로를 정의했습니다.
매크로의 입력변수는 다음과 같습니다.
입력데이터셋: 예를 들면, sashelp 라이브러리의 cars 데이터셋
필터링할 차령 유형: 예시) SUV
결과로 저장할 데이터셋 이름: output_name
KEEP Make Model Type MSRP MPG_City MPG_Highway : 출렉 데이터셋에 포함시킬 변수
PROC PRINT DATA=&output_name;
TITLE "저장된 데이터: &car_type";
RUN;
결과 데이터셋을 출력해서 확인할 수 있습니다.
TITLE에는 필터링한 차량 유형을 표시합니다.
%save_filtered_cars(SASHELP.CARS, SUV, work.suv_cars);
sashelp 라이브러리에 있는 cars 데이터셋에서 suv만 필터링해 work 라이브러리에 suv_cars라는 이름으로 데이터를 저장한다음 PROC PRINT 구문으로 결과를 출력합니다.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.