SAS组合3个数据集并分配其相应的数据集名称

时间:2015-01-06 04:19:04

标签: sas

我有3个数据集如图所示:

data dataA;
    input id;
    datalines;
1001
1002
1003
;
run;

data dataB;
    input id;
    datalines;
1001
1002
1003
;
run;

data dataC;
    input id;
    datalines;
1001
1002
1003
;
run;

我想要输出:

1001 dataA
1002 dataA
1003 dataA
1001 dataB
1002 dataB
1003 dataB
1001 dataC
1002 dataC
1003 dataC

我知道如何使用

组合三个数据集
data datacombine;
  set dataA dataB dataC;
run;

2 个答案:

答案 0 :(得分:7)

如果你有SAS 9.2或更新版本,那么你可以使用INDSNAME选项http://support.sas.com/kb/34/513.html

data datacombine;
format dsname datasetname $25.; 
  set dataA dataB dataC indsname=dsname;
  datasetname=dsname;
run;

答案 1 :(得分:2)

我认为这是最标准的做法:

data datacombine;
   set dataA(in=A) dataB(in=B) dataC(in=C);
   if      A then origin = "dataA";
   else if B then origin = "dataB";
   else if C then origin = "dataC";
run;

如果行来自相应的输入数据集,则in= dataset option设置一个标志。