楼主: leedx
1143 4

数据库匹配问题 [推广有奖]

  • 7关注
  • 2粉丝

讲师

68%

还不是VIP/贵宾

-

威望
0
论坛币
1034 个
通用积分
8.4705
学术水平
4 点
热心指数
9 点
信用等级
1 点
经验
4461 点
帖子
611
精华
0
在线时间
435 小时
注册时间
2010-4-29
最后登录
2023-11-29

楼主
leedx 发表于 2014-1-3 14:57:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教大家个问题:
现在又两个数据集A和B,两个数据集中均有变量match1、match2 和match3.

现在想根据变量match1、match2 和match3对数据集A和B进行一对一的横向合并,
条件是A.match1=B.match1 or A.match2=Bmatch2 or A.match3=B.match3, 这三个条件只要有一个或以上的成立,即认为是同一个观测,然后进行横向合并。(或者说 先看 A.match1=B.match1 是否成立,如果不成立;再看A.match2=Bmatch2 是否成立,如果不成立;再看A.match3=B.match3 是否成立。)

我用SQL和merge 都没能实现。
二维码

扫码加我 拉你入群

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

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

关键词:数据库 Match Merge ATCH ATC 数据库

沙发
zhengbo8 发表于 2014-1-3 15:07:16
来点示例的数据。

藤椅
leedx 发表于 2014-1-3 15:29:43
zhengbo8 发表于 2014-1-3 15:07
来点示例的数据。
  1. data a;
  2. input match1 $ match2 $ match3 $ x;
  3. cards;
  4. 331a      N      445d     5
  5. 236a   135b  559c     6
  6.     N      329c  446a     7
  7. 222d   778a  445c     9
  8. ;
  9. run;

  10. data b;
  11. input match1 $ match2 $ match3 $ y;
  12. cards;
  13. 331a  226m N 5
  14. N  135b  559c 7
  15. 332r N 446a 4
  16. 222d  778a 445c 6
  17. ;
  18. run;
复制代码
N 代表缺失

板凳
zhengbo8 发表于 2014-1-3 16:49:04
笨方法。
  1. data a;
  2.     input match1 $ match2 $ match3 $ x;
  3. cards;
  4. 331a      N      445d     5
  5. 236a   135b  559c     6
  6. N      329c  446a     7
  7. 222d   778a  445c     9
  8. ;

  9. data b;
  10.     input match1 $ match2 $ match3 $ y;
  11. cards;
  12. 331a  226m N 5
  13. N  135b  559c 7
  14. 332r N 446a 4
  15. 222d  778a 445c 6
  16. ;

  17. data c(drop= match11 match22 match33);

  18.         set a ;
  19.         set b(rename=(match1=match11 match2=match22 match3=match33));

  20.         if match1=match11 or match2=match22 or match3=match33 then do;
  21.                 if match1='N' then match1=match11;
  22.                 if match2='N' then match2=match22;
  23.                 if match3='N' then match3=match33;
  24.                 output;
  25.         end;

  26. run;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

报纸
leedx 发表于 2014-1-6 16:10:49
zhengbo8 发表于 2014-1-3 16:49
笨方法。
非常感谢~~~thx
不过貌似 要先排序。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 13:20