全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2320 5
2015-08-23
有两个数据集,现在想合并这两个数据集,变量A是年,变量D是ID,变量B,C 是随便写的,已知可以根据ID来match这两个数据集,但同时还需要满足以下条件:如果变量A是04年ID是2,则和变量H是03年ID是2合并, 如果变量A是05年ID是2,则和变量H是04年ID是2合并, 也就是说变量A的年份要晚变量B的年份一年,请问这个codes应该怎么写啊,谢谢

第一个数据集
A     B     C     D                                       
04  32   6.8   2
05  45  5.9    3
04  66  3.8    7
04  75  8.9   4
05  23  2.6   6

第二个数据集
H      I      J      K
03   21   4.5   2
04   25   5.9   2
04   64   4.7   3
03   77   3.7   3
04   87   5.2   6
03   94   9.1   6
03   16   1.6   7
04   13   8.5   7
04   87   9.4   4
03   46   9.2   4

二维码

扫码加我 拉你入群

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

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

全部回复
2015-8-23 17:42:57
你的表述有误,不好解答
二维码

扫码加我 拉你入群

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

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

2015-8-23 23:35:56
将A、H转化为数字,A-1或H+1,然后在合并即可
二维码

扫码加我 拉你入群

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

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

2015-8-24 12:15:06
yangdelong1988 发表于 2015-8-23 23:35
将A、H转化为数字,A-1或H+1,然后在合并即可
谢谢~~~~~
二维码

扫码加我 拉你入群

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

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

2015-8-24 17:13:56
data work.a;
input A $ B C D;
cards;
04  32   6.8   2
05  45  5.9    3
04  66  3.8    7
04  75  8.9   4
05  23  2.6   6
;
run;
data work.b;
input H $ I J K;
cards;
03   21   4.5   2
04   25   5.9   2
04   64   4.7   3
03   77   3.7   3
04   87   5.2   6
03   94   9.1   6
03   16   1.6   7
04   13   8.5   7
04   87   9.4   4
03   46   9.2   4
;
run;
data a_cln;
set a;
A1=A*1;
RUN;
data b_cln;
set b;
B1=H*1;run;
proc sql noprint;
create table wqj_union as
(
select
t1.*,
t2.I,
t2.J,
t2.H
from work.a_cln t1
FULL OUTER JOIN
work.b_cln t2
on t1.D =t2.K
and t1.A1=t2.B1+1
);
quit;
RUN;
二维码

扫码加我 拉你入群

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

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

2015-8-25 13:18:44
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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