楼主: guolaiguoqu
43122 25

[数据管理求助] 弱弱地问:joinby和merge有什么区别? [推广有奖]

  • 0关注
  • 3粉丝

本科生

16%

还不是VIP/贵宾

-

威望
0
论坛币
447 个
通用积分
3.0925
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
921 点
帖子
54
精华
0
在线时间
71 小时
注册时间
2009-4-27
最后登录
2021-7-9

楼主
guolaiguoqu 发表于 2009-6-30 16:01:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
看了help,大致知道怎么用。
想问一下大家,这两个有什么区别?什么情况下用哪个更好?
谢谢了!
二维码

扫码加我 拉你入群

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

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

关键词:joinby Merge join Help elp

沙发
denver 发表于 2009-6-30 23:13:32
如果楼主要系统的了解的话我想还是用help比较一下吧。下面我仅仅谈一下自己的体会:
两个命令所实现的功能都是一样的,都是将两组数据合并在一起,但区别就在于合并后所得到的结果上。具体的说,joinby由于有很丰富的选项,如
   unmatched(none)      ignore all; the default
      unmatched(both)      include from both datasets
      unmatched(master)    include from data in memory
      unmatched(using)     include from data in filename

这样可以保证你仅用一个命令就可以得到你想要的输出结果了。而merge仅给你提供了_merge=1,2,3这样的附加变量,所以你必须用keep或drop命令得到你想要的结果。joinby也提供了_merge变量,但它是用文字表述的,虽然也可以用数字调用,但毕竟不太清晰。其实在实战中,很少使用joinby,因为merge基本上可以满足所有的需要了。
如很多时候,我们想将一个大样本数据集(big)以id为标识变量合并到小样本中(small),两个命令分别为
use small (注:big和small数据中都要sort id)
joinby id using big, unm(m)
或者 merge id using big, nokeep

以上仅仅是我的个人感觉。
已有 2 人评分论坛币 学术水平 热心指数 收起 理由
crystal8832 + 20 + 1 + 1 观点有启发
dxystata + 20 好的意见建议

总评分: 论坛币 + 40  学术水平 + 1  热心指数 + 1   查看全部评分

藤椅
guolaiguoqu 发表于 2009-7-1 00:35:33
嗯,谢谢啦!

板凳
costmanagement 发表于 2011-5-1 00:56:04
但用merge和 joinby后,id的个数不仅与big data不一样,而且与small data的也不一样。我需要合并后的数据与small data的数目一样,请问该如何处理?谢谢!

报纸
lavendercao 发表于 2011-8-3 18:04:43
恩,不错,谢谢啦!!!

地板
余鱼 发表于 2011-8-7 17:02:58
我用过这两个命令,joinby这个命令自动去掉其中不匹配的,merge就是需要你自己去提出一些东西。一般情况下还是用merge吧,这个比较的常用。当然你也可以把这两个命令都用一下,检验你数据匹配是否正确。这是我做数据的感受,一般性用merge作出的结果还是比较的可信的!
已有 3 人评分经验 论坛币 热心指数 收起 理由
葫芦娃大王 + 10 + 10 精彩帖子
crystal8832 + 10 + 1 观点有启发
dxystata + 10 好的意见建议

总评分: 经验 + 10  论坛币 + 30  热心指数 + 1   查看全部评分

7
ghgriffin 发表于 2014-2-19 21:33:47
前几楼回答不够专业,merge可以用来做1对1,1对多的匹配,joinby是做多对多的匹配。所以在合并数据库时最好搞清楚自己所用数据库的数据结构,避免犯错
已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
葫芦娃大王 + 10 + 10 精彩帖子
Sunknownay + 2 + 2 + 2 热心帮助其他会员
影影9091 + 1 + 1 精彩帖子
crystal8832 + 10 + 1 观点有启发

总评分: 经验 + 10  论坛币 + 20  学术水平 + 3  热心指数 + 4  信用等级 + 2   查看全部评分

8
零点晓敏 学生认证  发表于 2014-8-16 09:53:18
denver 发表于 2009-6-30 23:13
如果楼主要系统的了解的话我想还是用help比较一下吧。下面我仅仅谈一下自己的体会:
两个命令所实现的功能 ...
您上面所举的例子中,用joinby和merge命令分别做合并,请问结果是完全一样的吗?如果出现这样的两个数据集:
data1:                             data2:
id   age  sex                       id   school  score
1    10    1                         1      2        80
1    12    2                         1      3        85
1    15    1                         2      4        89
2    17    2                         2      2        90
想把他们横向合并,请问用merge m:m好还是用joinby好啊?

9
wyddy 发表于 2015-3-3 16:10:22
ghgriffin 发表于 2014-2-19 21:33
前几楼回答不够专业,merge可以用来做1对1,1对多的匹配,joinby是做多对多的匹配。所以在合并数据库时最好 ...
正解!

10
sarral123 发表于 2015-9-6 10:45:30
余鱼 发表于 2011-8-7 17:02
我用过这两个命令,joinby这个命令自动去掉其中不匹配的,merge就是需要你自己去提出一些东西。一般情况下还 ...
您好,请问下你用joinby之后出现了重复样本么,怎么处理的

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-28 23:57