Biostat/SAS Macro

SAS Macro 매크로 속의 매크로

카이집사

제목에서 유추해볼 수 있는 것처럼 매크로 호출을 하는 매크로를 짜는 것이다. 

%MACRO corr1(var1, var2);
DATA temp;
  SET bankdata;
  IF bis<8;
RUN;
PROC CORR;
  VAR &var1 &var2;
RUN;
%MEND corr1;

%corr1 (bis, per)
%corr1 (bis, bcredit)

위 매크로는 매크로 변수 var1 과 var2 를 만들어서 데이터 스텝과 상관분석 프로시저를 한 매크로안에 넣어서 고정된 데이터 내에서 변수를 지정할 수 있게끔 하였다. 

 

매크로 속의 매크로는 (아래와 같이) 연속된 프로시저를 쪼개서 각 과정에 대한 매크로를 작성 한 후에 최종 결과를 얻기 위한 과정을 매크로를 호출한다. 이렇게 되면 data handling 이나 분석의 순서가 한눈에 들어오는 장점이 있다. 

%MACRO data1;
DATA temp;
  SET bankdata;
  IF bis>8;
RUN;
%MEND data;

%MACRO corr;
PROC corr;
  VAR &var1 &var2;
RUN;
%MEND corr;

%MACRO combine(var1, var2);
%data1
%corr
%MEND combine ;

%combine(bis, per)