楼主: rreewwq
2113 5

[问答] 有条件合并数据SAS [推广有奖]

  • 0关注
  • 0粉丝

本科生

96%

还不是VIP/贵宾

-

威望
0
论坛币
660 个
通用积分
38.5581
学术水平
3 点
热心指数
3 点
信用等级
1 点
经验
1621 点
帖子
39
精华
0
在线时间
151 小时
注册时间
2012-12-4
最后登录
2024-2-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有两个数据集,现在想合并这两个数据集,变量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

二维码

扫码加我 拉你入群

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

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

关键词:合并数据 codes Match ATCH ODEs

沙发
18129380375 学生认证  发表于 2015-8-23 17:42:57 |只看作者 |坛友微信交流群
你的表述有误,不好解答

使用道具

藤椅
yangdelong1988 发表于 2015-8-23 23:35:56 |只看作者 |坛友微信交流群
将A、H转化为数字,A-1或H+1,然后在合并即可

使用道具

板凳
rreewwq 发表于 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;
已有 1 人评分学术水平 热心指数 收起 理由
Tigflanker + 2 + 2 我很赞同

总评分: 学术水平 + 2  热心指数 + 2   查看全部评分

使用道具

地板
18129380375 学生认证  发表于 2015-8-25 13:18:44 |只看作者 |坛友微信交流群
  1. data a;
  2. input A B C D;
  3. cards;
  4. 04  32 6.8  2
  5. 05  45 5.9  3
  6. 04  66 3.8  7
  7. 04  75 8.9  4
  8. 05  23 2.6  6
  9. ;
  10. run;
  11. data b;
  12. input H I J K;
  13. cards;
  14. 03   21   4.5   2
  15. 04   25   5.9   2
  16. 04   64   4.7   3
  17. 03   77   3.7   3
  18. 04   87   5.2   6
  19. 03   94   9.1   6
  20. 03   16   1.6   7
  21. 04   13   8.5   7
  22. 04   87   9.4   4
  23. 03   46   9.2   4
  24. ;
  25. run;
  26. proc sql noprint;
  27. create table left_join as
  28. select a.*,b.*
  29. from a t1
  30. left JOIN
  31. b
  32. on a.D =b.K
  33. and a.A=b.H+1
  34. ;
  35. quit;
复制代码

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 06:38