楼主: colinsy
7133 12

[编程问题求助] 连续merge操作只能merge进一个!求助大神谢谢! [推广有奖]

  • 0关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
682 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
386 点
帖子
28
精华
0
在线时间
53 小时
注册时间
2015-4-1
最后登录
2018-6-26

楼主
colinsy 学生认证  发表于 2015-4-23 12:14:33 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
合并.jpg
各位大神,我建立了一个do.file程序,以变量versy为基准连续merge 98年——09年的crntast变量(其中母数据源没有crntast这个变量)。
但是操作结束之后我发现只有98年的merge进来了,99年——09年都没有merge进来,但是后面的merge情况却仍然显示matched,我确定99——09年这一项数据都是全的,我想问为啥之后的会merge不进来,该怎么操作啊[cry]。下图中左边一项为versy,中间为crntast变量,最右边为_merge。
PS:我试过先merge一年(比如09年),再merge 98,发现结果是一样的,都只能merge进来一年,是我之后的语句需要调整吗?感谢大神![cry]拯救我于苦海吧[cry]
result.jpg
二维码

扫码加我 拉你入群

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

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

关键词:Merge 求助大神 Matched Match vers 数据源 程序

合并.jpg (415.59 KB)

合并.jpg

沙发
colinsy 学生认证  发表于 2015-4-23 16:36:53 |只看作者 |坛友微信交流群
自己顶!求助啊!

使用道具

藤椅
colinsy 学生认证  发表于 2015-4-23 21:34:10 |只看作者 |坛友微信交流群
快来人呀 或者谁告知一下正常怎么做做的出来也行[sad]

使用道具

板凳
austen06 发表于 2015-4-23 22:38:05 |只看作者 |坛友微信交流群
为什么是m:m?

使用道具

报纸
LIXUANHANK 学生认证  发表于 2015-4-23 22:52:30 |只看作者 |坛友微信交流群
不知道你的数据结构是怎么样的?
我老师是stata高级玩家了,他说他从来没用过merge里面m:m这个选项,因为不好用,肯定可以有其他方法。不过需要知道更多信息才能帮你。

使用道具

地板
jannsz06 发表于 2015-4-23 23:31:11 |只看作者 |坛友微信交流群
这个很简单,你没有仔细看help文档,你在merge的时候后面会产生一个系统变量_merge(3),你只要告诉stata不要产生这个变量,因此,附加选项nogenerate即可

使用道具

7
colinsy 学生认证  发表于 2015-4-24 00:35:31 |只看作者 |坛友微信交流群
austen06 发表于 2015-4-23 22:38
为什么是m:m?
因为1:1总会提醒variable versy does not uniquely identify observations in the master data。。。我也不知道哪里重复了。。。也没查出来

使用道具

8
colinsy 学生认证  发表于 2015-4-24 00:44:10 |只看作者 |坛友微信交流群
LIXUANHANK 发表于 2015-4-23 22:52
不知道你的数据结构是怎么样的?
我老师是stata高级玩家了,他说他从来没用过merge里面m:m这个选项,因为不 ...
我的1998-2009年份中有100+个变量,现在我只想把这100多个变量中的某一个变量(如crntast)以versy为基准merge进来,所以写了keepusing,不知道这样对不对。之所以用m:m是因为每次我用1:1都会提示variable versy does not uniquely identify observations in the master data。说起重复原因,我觉得可能跟我的基准变量versy有关,我的versy是 gen versy=string(X)+ string(Y)产生的,因为我融入数据时必须以X和Y变量同时对应,所以我新建了一个变量,把他俩放在一起了,这样我merge的时候相当于同时兼顾了X和Y。所以就是以上。我要做的就是把1998-2009年100多项变量中的某一项同时以X和Y对应(versy)的方式merge进来,求大神及大神老师指点

使用道具

9
colinsy 学生认证  发表于 2015-4-24 00:46:27 |只看作者 |坛友微信交流群
jannsz06 发表于 2015-4-23 23:31
这个很简单,你没有仔细看help文档,你在merge的时候后面会产生一个系统变量_merge(3),你只要告诉stata不 ...
但是写nogenerate不就意味着keepusing不能用了嘛。。。但是我每一年中有100+个数据,我只想merge进来一个,不用keepusing的话没有办法只merge进我要的数据啊。。。还是我哪里理解错了?

使用道具

10
kevinlovecherry 发表于 2015-4-24 10:44:52 |只看作者 |坛友微信交流群
merge是横向合并,中间缺少了保存文件的步骤。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

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

GMT+8, 2024-5-31 19:35