楼主: guolaiguoqu
43127 25

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

11
sarral123 发表于 2015-9-6 10:47:12
denver 发表于 2009-6-30 23:13
如果楼主要系统的了解的话我想还是用help比较一下吧。下面我仅仅谈一下自己的体会:
两个命令所实现的功能 ...
您好,请问下你用完joinby之后出现了很多重复样本么,怎么处理的

12
ender_s 发表于 2016-2-5 13:33:40
ghgriffin 发表于 2014-2-19 21:33
前几楼回答不够专业,merge可以用来做1对1,1对多的匹配,joinby是做多对多的匹配。所以在合并数据库时最好 ...
我尝试了一下,貌似m:m(stata14)merge出来的结果和joinby在unm(b)选项下的结果差不多啊

13
BlackHawk123 在职认证  发表于 2016-2-9 17:14:12
Although “many-to-one"’ or “one-to-many” merges are commonplace and very useful, you should never want to do a “many-to-many” (m:m) merge, which will yield seemingly random results.

14
protector 发表于 2016-11-17 18:28:09
ghgriffin 发表于 2014-2-19 21:33
前几楼回答不够专业,merge可以用来做1对1,1对多的匹配,joinby是做多对多的匹配。所以在合并数据库时最好 ...
感谢楼上的回答~~

15
protector 发表于 2016-11-17 21:32:50
ghgriffin 发表于 2014-2-19 21:33
前几楼回答不够专业,merge可以用来做1对1,1对多的匹配,joinby是做多对多的匹配。所以在合并数据库时最好 ...
merge m:m id using ... 和 joinby id using ...都可以做多对多的 匹配,但最大的不同是 merge是基于master中每个id 对应的数据条数 (某个id 值有n条数据)将 using 中对应id 值得前n 条数据与之匹配;而joinby 是做类似笛卡尔乘积的运算。
1:                                          
1 a
1 b
2 a
3 a
4 a
4 b
6 a

2:
1 X
3 X
3 O
4 X
4 O
5 OO
6 X


use 1
joinby id using 2, unm(both)
1 ax
1 bx
2a
3a x
3a o
4a x
4a o
4b x
4b o
5 oo
6a x

注意: id=4 对应的数据有4条,说明joinby 执行的笛卡尔乘积运算,与merge不同。
这里就省去merge 的结果了,哈哈哈~
已有 6 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
mengfeiinsx + 1 + 1 + 1 精彩帖子
115861 + 5 + 1 + 1 精彩帖子
AISOMI + 1 + 1 + 1 + 1 精彩帖子
50123 + 1 + 1 + 1 精彩帖子
xujianecon + 3 + 3 + 3 精彩帖子
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 26  学术水平 + 7  热心指数 + 7  信用等级 + 6   查看全部评分

16
孙艾琪 在职认证  发表于 2017-3-19 10:18:18
merge应该是横向合并,比如一份数据的变量一些是来自报纸,一些是来自杂志,将二者的变量合并就是merge,joinby是组内交叉,例如一份数据是n个职员的信息,包括其所属公司,工资等,另一份样本是m个公司的信息,如果想在职员信息中加入其所属公司的信息,则用joinby命令。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

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

17
主观性3 发表于 2018-10-21 08:53:40
孙艾琪 发表于 2017-3-19 10:18
merge应该是横向合并,比如一份数据的变量一些是来自报纸,一些是来自杂志,将二者的变量合并就是merge,jo ...
请问一下,就是我的master数据需要用year、City、type才能唯一识别,using数据用City就可以唯一识别,而且两份数据的样本量不是一样多,我现在想要根据City来合并两份数据,我用的命令是merge m:1 City using "数据.dta",但是报错City不能唯一识别,请问这种情况应该怎么办?ps:我的using数据里没有year和type数据
非常感谢啦!

18
pineberries 学生认证  发表于 2020-3-13 22:06:13
protector 发表于 2016-11-17 21:32
merge m:m id using ... 和 joinby id using ...都可以做多对多的 匹配,但最大的不同是 merge是基于mast ...
good,讲的清楚了

19
y97986 发表于 2020-5-22 19:29:50
余鱼 发表于 2011-8-7 17:02
我用过这两个命令,joinby这个命令自动去掉其中不匹配的,merge就是需要你自己去提出一些东西。一般情况下还 ...
你好 我想请问如果是merge m:m的情况怎么办?
有看到说不要用merge m:m
因为我的city year两个变量在两个表中都不是唯一的

20
jzhyue 发表于 2020-5-22 20:28:17
y97986 发表于 2020-5-22 19:29
你好 我想请问如果是merge m:m的情况怎么办?
有看到说不要用merge m:m
因为我的city year两个变量在两 ...
merge 与joinby相似,
m:m时两者意义一样,不过不建议joinby,也不建议m:m
具体help 一下

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

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