目前,我的宏正在运行以插入常量行:
%MACRO ADD_PERIOD;
%DO P = 1 %TO 39;
我是否可以修改此宏或创建一个新宏来运行它,而不是39次,但用另一个表中的变量替换循环数?
谢谢!
答案 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);