【发布时间】:2015-04-06 03:27:56
【问题描述】:
目前,我的宏正在运行以插入恒定数量的行:
%MACRO ADD_PERIOD;
%DO P = 1 %TO 39;
我能否修改这个宏或创建一个新宏来运行它,而不是 39 次,而是用另一个表中的变量替换循环数?
谢谢!
【问题讨论】:
目前,我的宏正在运行以插入恒定数量的行:
%MACRO ADD_PERIOD;
%DO P = 1 %TO 39;
我能否修改这个宏或创建一个新宏来运行它,而不是 39 次,而是用另一个表中的变量替换循环数?
谢谢!
【问题讨论】:
使用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);
【讨论】: