全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3328 5
2018-07-30
悬赏 5 个论坛币 已解决
两个数据集cw1和gp1,有共同的stkcd、date,但是这两列只是部分数据一样,很多无法一一对应,现在想把两个表水平合并,先按照stkcd,再按date,匹配起来,没有的数值就空着,不知道代码怎么写,求大神赐教,谢谢!
屏幕快照 2018-07-30 下午10.42.48.png
屏幕快照 2018-07-30 下午10.42.56.png
cw.xls
大小:(735.5 KB)

 马上下载


gp.xls
大小:(33.5 KB)

 马上下载



最佳答案

whymath 查看完整内容

proc sort data = cw1; by stkcd date; run; proc sort data = gp1; by stkcd date; run; data out; merge cw1 gp1; by stkcd date; run;
二维码

扫码加我 拉你入群

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

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

全部回复
2018-7-30 22:54:22
proc sort data = cw1;
by stkcd date;
run;

proc sort data = gp1;
by stkcd date;
run;

data out;
merge cw1 gp1;
by stkcd date;
run;
二维码

扫码加我 拉你入群

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

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

2018-7-31 02:02:19
/* sort cw1 dataset */
proc sort data=cw1;
by stkcd date;
run;

title 'cw1';
proc print data=cw1;
run;


/* sort gp1 dataset */
proc sort data=gp1;
by stkcd date;
run;

title 'gp1';
proc print data=gp1;
run;


/* merge cw1 and gp1 */
data new;
merge cw1 gp1;
by stkcd date;
run;

title 'new';
proc print data=new;
run;
二维码

扫码加我 拉你入群

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

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

2018-8-5 21:12:05
proc sql noprint;
   create table new as
   select a.*,b. p,b.m,b.pb
   from cw1 as a left join gp1 as b
   on a.stkcd =b.stkcd and a.date =b.date
   order by stkcd, date;
quit;
二维码

扫码加我 拉你入群

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

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

2018-8-6 09:46:32
头顶妖娆小宇宙 发表于 2018-8-5 21:12
proc sql noprint;
   create table new as
   select a.*,b. p,b.m,b.pb
left join 只会输出cw1中的全部变量和gp1中的部分变量,这里应该用full join
二维码

扫码加我 拉你入群

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

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

2018-8-8 13:49:11
qiangwei2017 发表于 2018-8-6 09:46
left join 只会输出cw1中的全部变量和gp1中的部分变量,这里应该用full join
确实 没有看清楼主的要求 哈哈 这里用full join 才对
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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