Loops SAS宏Do循环
我希望有一个sas宏循环偶数年,所以do循环将从2006年跳到2008年到2010年……一直跳到2018年,而不是从2006年跳到2007年 当我执行%by=2时,SAS不工作并向我发送错误消息。最好的解决方案是什么 我有以下代码:Loops SAS宏Do循环,loops,sas,sas-macro,Loops,Sas,Sas Macro,我希望有一个sas宏循环偶数年,所以do循环将从2006年跳到2008年到2010年……一直跳到2018年,而不是从2006年跳到2007年 当我执行%by=2时,SAS不工作并向我发送错误消息。最好的解决方案是什么 我有以下代码: %macro import; %do I = 2006 %to 2018; data BTI&I; set edited.Bti_&I; year=&I;
%macro import;
%do I = 2006 %to 2018;
data BTI&I;
set edited.Bti_&I;
year=&I;
run;
%end;
%mend import;
%import;
将
%by 2
关键字添加到2的增量间隔中。我还建议将开始年和结束年作为参数传递给函数,并给出2006年和2018年的默认值
%macro import(start=2006, end=2018);
%do I = &start. %to &end. %by 2;
data BTI&I;
set edited.Bti_&I;
year=&I;
run;
%end;
%mend import;
%import;
用法:
%import()代码>将使用默认值2006和2018
%导入(开始=2009,结束=2018)代码>指定要使用的日期范围
by
值作为宏的参数来进一步改进它。