2014-02-13 2 views
4

Я пытаюсь вызвать макросы во время выполнения на основе предоставленных входов.Выполнение макроса SAS

макро шаг выполнения будет как ниже

% (& макропеременная);

тогда как значение макровируса будет предоставлено во время выполнения.

Это возможно или есть какой-либо способ добиться этого?

ответ

1

Там может быть другой путь, но вы можете использовать CALL EXECUTE после нулевого шага данных, например:

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

Некоторые фоне и примеры по CALL EXECUTE here.

5

Easy.

%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 
Смежные вопросы