Sas 输出多个数据集
我想要从一个数据集到多个数据集的输出,所以我想要这样的代码Sas 输出多个数据集,sas,Sas,我想要从一个数据集到多个数据集的输出,所以我想要这样的代码 data SmallDatasetName_1 - SmallDatasetName_100; set BigDatasetName; /*here some code*/ run; 所以,如果我尝试这个,我会得到一个错误。我可以解决它(通过使用select into)。但是它是否存在一个“简单”的语法,类似于 data BigDatasetName; set SmallDatasetName_1 - SmallDatasetName
data SmallDatasetName_1 - SmallDatasetName_100;
set BigDatasetName;
/*here some code*/
run;
所以,如果我尝试这个,我会得到一个错误。我可以解决它(通过使用select into)。但是它是否存在一个“简单”的语法,类似于
data BigDatasetName;
set SmallDatasetName_1 - SmallDatasetName_100;
/*here some code*/
run;
?据我所知,您不能在
data
语句中使用数据集列表。可以使用宏生成代码。首先定义宏:
options mprint;
%macro split;
data
%do I = 1 %to 5;
SmallDatasetName_&I
%end;;
set BigDatasetName;
%do I = 1 %to 5;
if **your conditions here** then output SmallDatasetName_&I;
%end;;
run;
%mend split;
使用以下命令调用宏:
%split;
这将生成如下所示的sas代码:
data
SmallDatasetName_1
SmallDatasetName_2
SmallDatasetName_3
SmallDatasetName_4
SmallDatasetName_5
;
set BigDatasetName;
if **your conditions here** then output SmallDatasetName_1;
if **your conditions here** then output SmallDatasetName_2;
if **your conditions here** then output SmallDatasetName_3;
if **your conditions here** then output SmallDatasetName_4;
if **your conditions here** then output SmallDatasetName_5;
run;
回答得好。不过,我不会使用宏
%split()
;我会将5
放入宏中,以便%split(num=)
调用%split(num=5)
,然后%doi=1%到&num代码>等。