1

目前,我的宏正在运行以插入恒定数量的行:

%MACRO ADD_PERIOD;

%DO P = 1 %TO 39;

我是否能够修改此宏或创建一个新宏来运行它,而不是 39 次,而是用另一个表中的变量替换循环数?

谢谢!

4

1 回答 1

2

使用 将该call symput变量(my_var) 转换为macro变量(loop_var)

data _null_;
set your_table;
call symput("loop_var", my_var);
run;

并用于&将宏变量解析为您的代码

%MACRO ADD_PERIOD;

%DO P = 1 %TO &loop_var;

您还可以将该宏变量作为参数传递给您的宏。

 %MACRO ADD_PERIOD(loop_var);
于 2015-04-06T04:07:01.533 回答