목적
임상시험 진행 중 의뢰사로부터 프로그램 코드를 요청받는 일이 종종 있다. 보내주면 그만이라는 생각을 할 수 있지만, 대부분 통계분석 시 매크로를 이용하여 프로그램하므로 프로그램 코드를 보내줄 수 없는 경우가 많다. 이 때문에 프로그램 코드를 공개용 / 비공개용 모두 만드는 경우도 있는데 매우 비효율적이다. 만약 매크로 카탈로그를 구성하여 이를 의뢰사에 보낸다면 프로그램 코드 공개 없이 해당 매크로를 이용할 수 있어 매우 유용하다. 오늘은 SAS 프로그램을 이용하여 매크로 카탈로그를 구성하는 방법에 대해 알아보자. Sample data는 sashelp.class를 이용할 것이다.
1. Set up
먼저 매크로 카탈로그를 구성할 라이브러리 및 경로를 설정한다.
libname catalog "C:\Macros"; |
그 다음 SAS Option을 이용하여 매크로가 저장될 라이브러리를 미리 설정한 라이브러리로 지정하여 매크로 카탈로그를 연다.
option mstored sasmstore=catalog; |
한 번 지정한다면 SAS 세션이 끝날 때까지 매크로 카탈로그가 열림상태로 유지되므로 만약 닫고 싶다면 아래 코드를 이용하여 닫는다.
libname catalog clear; |
2. 매크로 저장 (Macro save)
SAS Option을 이용하여 매크로 카탈로그를 열었다면 아래 예제인 Means 매크로를 카탈로그로 저장해본다.
%Macro Means(data=, var=); proc means data=&data.; var &var.; run; %Mend Means; |
위 코드는 일반적인 Macro 형태인데, /store 옵션을 이용하여 매크로 코드를 카탈로그로 저장한다.
%Macro Means(data=, var=) / store; proc means data=&data.; var &var.; run; %Mend Means; |
카탈로그가 구성된 것을 알 수 있다.
|
3. 카탈로그 (Catalog) 실행
SAS 종료 후 생성해 놓은 매크로 카탈로그를 실행하고 싶다면
libname catalog "C:\Macros"; option mstored sasmstore=catalog; |
매크로를 실행해 보면
%Means(data=sashelp.class, var=age); |
매크로가 잘 실행되는 것을 알 수 있다.
% |
4. 카탈로그 (Catalog)에 소스 코드 저장
만약 매크로 카탈로그에 소스 코드까지 저장하고 싶다면 /Source 옵션을 이용하여 매크로 코드를 카탈로그로 저장한다.
%Macro Means(data=, var=) / store source; proc means data=&data.; var &var.; run; %Mend Means; |
저장된 소스코드를 읽으려면 %copy 매크로명 / source;
%copy Means / source; |
프로그램 로그에 매크로 소스코드를 출력하는 것을 알 수 있다.
SAS Macro Catalog에 대한 더 많은 정보를 확인하려면 아래 링크 Click
SAS Help Center: Saving Macros Using the Stored Compiled Macro Facility
'끄적이는 프로그래밍 > SAS 프로그래밍' 카테고리의 다른 글
[SAS option] 데이터셋 (.sas7bdat) 암호화 (PW=) (0) | 2022.09.07 |
---|---|
SAS programming 기초 (자료의 결합 - 가로 결합) (0) | 2022.08.31 |
SAS programming 기초 (자료의 결합 - 세로 결합) (0) | 2022.08.29 |
SAS programming 기초 (제어문, IF, Do loop, Select when) (0) | 2022.08.28 |
SAS programming 기초 (Dataset 만들기, 외부데이터 불러오기, proc import, infile 문) (2) | 2022.08.27 |