2014-02-13 3 views
4

제공된 입력을 기반으로 런타임에 매크로를 호출하려고합니다.SAS 매크로 실행

매크로 실행 단계는 아래

% (& macrovariable)와 같은 것;

반면 macrovariable 값은 런타임에 제공됩니다.

이 방법이 가능합니까? 아니면이 문제를 해결할 방법이 있습니까?

답변

1

다른 방법이있을 수 있습니다,하지만 당신은 같은 널 데이터 단계 이후 CALL EXECUTE을 사용할 수 CALL EXECUTE here

data _null_; 
    CodeToRun = cats('%',"&MyMacroName"); 
    Call Execute (CodeToRun); 
run; 

일부 배경 및 예.

5

쉬운.

%macro test(a); 
%put Test says &a; 
%mend; 

%let mymacro = test; 

%&mymacro(Hello World); 

반환

8239 %macro test(a); 
8240 %put Test says &a; 
8241 %mend; 
8242 
8243 %let mymacro = test; 
8244 
8245 %&mymacro(Hello World); 
Test says Hello World