我在sas
中使用以下语句进行函数调用%loopit(26062015,bbbbbbINFY,FUTSTK,30Jul2015);
%loopit(26062015,bbbbbbSBIN,FUTSTK,30Jul2015);
%loopit(26062015,bbbbbbbTCS,FUTSTK,30Jul2015);
我已经在代码中定义了loopit宏。可以看出,在函数调用中,只有一个参数发生变化,而其余参数相同。我想如果有任何循环结构(例如阵列),我可以使用它来使它更有用。
答案 0 :(得分:0)
您可以定义要循环的参数列表,然后在每个参数上调用%loopit
:
%let param_list = bbbbbbINFY bbbbbbSBIN bbbbbbbTCS;
%macro loop_them;
%do i = 1 %to %sysfunc(countw(¶m_list.));
%let this_param = %scan(¶m_list., &i.);
%loopit(26062015,&this_param.,FUTSTK,30Jul2015);
%end;
%mend loop_them;
%loop_them;
答案 1 :(得分:0)
您可以使用call execute
功能。例如,如果您有一个顺序计数基本参数,那么您可以使用以下代码:
Data _NULL_;
count = 0;
for i=0 to 10;
call execute ( ‘%loopit(count)’ );
end;
run;
我不完全确定上面使用的语法。谷歌更清晰。我之前以同样的方式使用过call execute
。