插入可变数量的行

时间:2015-04-06 03:27:56

标签: loops macros sas datastep

目前,我的宏正在运行以插入常量行:

%MACRO ADD_PERIOD;

%DO P = 1 %TO 39;

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

谢谢!

1 个答案:

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