SAS中文论坛

标题: 如何在data步中生成多个数据集,很多个 [打印本页]

作者: shiyiming    时间: 2010-6-2 21:45
标题: 如何在data步中生成多个数据集,很多个
data basic1 basic2 basic3 basic4;
set basic;
if _n_<=4 then output basic1;
else if _n_<=8 then output basic2;
else if _n_<=12 then output basic3;
else output basic4;
run;

上面的是生成4个数据集合 我可以写成data basic1 basic2 basic3 basic4;,依次列出来
但是现在要是有100个,我应该怎么写呢?
试了一下写成 data basic1-basic4,结果报错
应该如何写呢??

另外如果有N个,N是一个参数,我该如何表示呢,
谢谢 求解答
作者: shiyiming    时间: 2010-6-3 09:35
标题: Re: 如何在data步中生成多个数据集,很多个
%macro set;
%let n=100;
%do i =1 %to &n;
data basic&i;
        set sashelp.class;
if  4*(&i-1) lt _n_ le 4*(&i) then output basic&i;
run;
%end;
%mend;

%set;

应该可以实现。
作者: shiyiming    时间: 2010-6-3 20:54
标题: Re: 如何在data步中生成多个数据集,很多个
深受楼上的启发。殊途同归
[code:jvr46qnd]%let n=100;
%macro set_;       
        data %do i =1 %to &n; basic%sysfunc(putn(&i, z3.)) %end;;
                set sashelp.class;
                if (_n_ le 4*1) then output basic001;
                %do i =2 %to &n;
                        else if  (_n_ le 4*(&i)) then output basic%sysfunc(putn(&i, z3.));
                %end;
        run;
%mend set_;

%set_
;[/code:jvr46qnd]




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2