楼主: lihoujian
128529 43

[数据管理求助] stata中数据如何合并 [推广有奖]

11
平军 在职认证  学生认证  发表于 2013-5-2 23:34:13 来自手机
lihoujian 发表于 2013-3-13 10:49
等于没有回答,不过谢谢,merge 1:1  id using ,merge 1:m id using,这个合并是不合理的,这个有两个id, ...
merge 1:1 id pid using file.dta
1:1的含义不是一个变量的意思,而是唯一确定,而id和pid唯一确定,所以还是1:1,不是1:m或m:1

12
青枝台 发表于 2014-1-23 09:07:31
merge m :m id pid using

13
xiangbow 发表于 2014-2-12 00:35:07
好像回答里面没有啥正确的 给出两个思路

1 用stata本身的 merge m:m 指令
merge m:m id pid using file2
2 用sas的思路 先创造一个唯一id 比如uid
gen uid=string(id)+"-"+string(pid)
分别作两个新文件
merge 1:1 uid using file2
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lihoujian + 3 + 3 + 3 正解,第二种思路
admin_kefu + 20 热心帮助其他会员

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

14
peachwei 发表于 2014-9-28 21:50:03
merge 之前有木有sort啊?这种情况1:1 merge 应该是可以的啊

15
yhw1234 学生认证  发表于 2015-4-17 20:44:12
joinby id pid using  data12.dta, unmatched(none)

16
gaoluyisi 发表于 2015-11-26 11:36:28
如果你用的是stata13,可以这么做:(假设第二张表格的数据叫test2.dta哈)
merge m:m id using test2.dta
结果是这样的:

      id   pid   x   y   z           _merge
1011     1   5   3   5      matched (3)
1011     2   4   2   6      matched (3)
1012     1   5   3   7      matched (3)
1012     2   6   4   4      matched (3)
1012     3   7   8   4      matched (3)
1013     1   6   5   3      matched (3)
1014     1   .   .   5   using only (2)
其实merge这个命令有点类似于并集的感觉,merge id就相当于以id为标的做并集,m:m是检查其他变量,最后_merge分类变量告诉你匹配情况。结果就是其实前面都完全匹配,然而最后一个是单单从第二张表格来的,因为第一张压根儿没有这个样本。
自己是新手,有错请不吝指正哈~

已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

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

17
风向我吹 发表于 2015-11-26 16:02:46
其实merge m:n id pid using 2.dta, nogen就可以啊

18
hanlinxian246 发表于 2016-4-8 15:55:51
学习了!

19
梧桐细雨夜 发表于 2016-5-11 18:43:52
楼主解决了吗?我也遇见这样子 的问题

20
xiangxinziji917 发表于 2016-11-20 20:29:23
想问下,我想进行纵向合并是用什么命令啊??就是之前是07—14年数据,我要再加上15年数据。。变量名都是一样的

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-7 16:03