我希望在几年内有一个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;
run;
%end;
%mend import;
%import;
答案 0 :(得分:3)
添加%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年%import(start=2009, end=2018);
指定您要使用的日期范围