全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1438 4
2012-12-01
请教大家一个合并数据集的问题

a数据集      b数据集    c数据集

date   x         date   x      date   x
1-3    5         1-3    6       1-3    7         
1-4    6         1-4    7       1-4    8
1-6    7         1-6    8       1-6    9
                   1-9    9       1-9    10
                                    1-10   11

最后我要得到的数据集为d

date   xa   xb    xc
1-3    5     6     7
1-4    6     7     8
1-6    7     8     9
1-9    .     9     10
1-10   .     .     11

哪位大侠能帮帮忙 小弟在此谢谢了!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-2 00:25:40
data a;
input
date $  x;
cards;
1-3    5
1-4    6
1-6    7
;
data b;
input
date $  x;
cards;
1-3    6  
1-4    7  
1-6    8  
1-9    9
;
data c;
input
date $  x;
cards;
1-3    7
1-4    8
1-6    9
1-9    10
1-10   11

;
run;

proc sql;
create table d as
select c.date,a.x as xa,b.x as xb,c.x as xc
from c left join b
on c.date=b.date
left join a
on c.date=a.date;
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-2 09:25:11
ziyenano 发表于 2012-12-2 00:25
data a;
input
date $  x;
谢谢楼上的! 但我还有一个问题 如果我有100个数据集,每个数据集的名称为maxc1 -maxc100,每个数据集里的变量名一样,都是date 和 x ,问题是如何将这100个数据集合在一起呢? 写宏吗? 新的数据集要有date和x1-x100,结构如一楼所示,麻烦你了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-2 11:39:39
%macro set(dsname=maxc,start=1,end=100,var=x);
     %let code=;
     %do i=&start %to &end;
            %let code=&code &dsname&i(rename=(&var=&var&i));
         %end;
         &code
%mend;


data maxc_all;
   merge %set();
   by date;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-2 12:05:57
clhclhjdz 发表于 2012-12-2 09:25
谢谢楼上的! 但我还有一个问题 如果我有100个数据集,每个数据集的名称为maxc1 -maxc100,每个数据集里的 ...
按楼上的吧~sql关联100张表,效率太低了~
要是每张表都按date排序了,用merge也可以
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群