对于导入的大量观察值的数据集,我想根据变量 _col2的不同取值拆分为不同的数据集。我知道用条件语句和output语句可以实现,但是 _col2的取值较多(比如取1到30的正整数),故想知道是否能用一个简单的方法实现?下面是我编的宏,但是没有实现想要的结果,求高手解决!!!十分感谢!!!
%macro arr(r);
%do i=1 %to &r;data out&i;set jd105c;%if _col2=&i %then output out&i;run;%end;
%mend arr;
%arr(30);
其结果为out1-out30数据集全部和jd105c数据集相同,求解决?
我尝试加入continue语句,但是出现error,程序如下:
%macro arr(r);
%do i=1 %to &r;data out&i;set jd105c;%if _col2=&i %then output out&i;%else continue;run;%end;
%mend arr;
%arr(30);
30个数据集出现相同的错误,error如下:
NOTE: 由调用宏“ARR”生成行。
148 continue
--------
1
161
WARNING 1-322: 假定符号 CONTINUE 被错拼为 continuerun。
ERROR 161-185: 没有匹配的 DO/SELECT 语句。
求解决!十分感谢!!!