SAS宏执行

时间:2014-02-13 23:22:31

标签: sas

我正在尝试根据提供的输入在运行时调用宏。

宏执行步骤如下所示

%(安培; macrovariable);

而macrovariable的值将在运行时提供。

这是可能的还是有什么方法可以实现这个目标?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

可能有另一种方法,但您可以在空数据步骤之后使用CALL EXECUTE,如:

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

CALL EXECUTE here上的一些背景和示例。