楼主: zihao0604
11437 13

[面板数据求助] 求教stata数据合并问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

90%

还不是VIP/贵宾

-

威望
0
论坛币
717 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
185 点
帖子
19
精华
0
在线时间
59 小时
注册时间
2010-9-25
最后登录
2020-6-8

楼主
zihao0604 发表于 2013-3-27 17:26:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
待合并表如下表一:

id    年度   所在地区    营业额
1      97      北京            100
1      98      北京            200
2      97      上海            100
2      98      上海            300
3      97      北京            400
3      98      北京            500
4      97      上海            900
4      98      上海            700
表二:
地区     年度     竞争指数
北京      97          10
北京      98           8
上海      97          15
上海      98          14

希望合并成
表一:

id    年度   所在地区    营业额     竞争指数
1      97      北京            100            10
1      98      北京            200             8
2      97      上海            100            15
2      98      上海            300            14
3      97      北京            400            10
3      98      北京            500             8
4      97      上海            900            15
4      98      上海            700            14


合并时如果制定 year 和所在地区为合并条件的话,会提示主表中不能唯一指定项。该如何操作,
求高手赐教





二维码

扫码加我 拉你入群

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

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

关键词:STATA数据 求教stata Stata tata 数据合并 北京 上海 营业额

沙发
逍遥梦蝶 发表于 2013-3-27 18:14:01
因为你的表一和表二了都没有一个能够唯一识别一条case的变量。
我通常是这么做的,比如001代表北京,将001保存为string型的,年度也存为string型的,然后再生成一个变量,比如叫key,那么就会产生形如“00197”“00198”“00497”等等,这样就可以唯一识别每一条case了。
表一和表二都要有Key才能合并。
我自己的经验,你可以试试~

藤椅
zihao0604 发表于 2013-3-27 20:14:55
逍遥梦蝶 发表于 2013-3-27 18:14
因为你的表一和表二了都没有一个能够唯一识别一条case的变量。
我通常是这么做的,比如001代表北京,将001 ...
多谢,我理解你的意思,如果这么去做,表一中合并后的变量还是不能唯一地指定一条Case。
比如 00197   就有三条对应的case 。
在表二中这样处理 能够唯一指定一条case.
。要不我把数据发给你 你帮我看看吧?

板凳
逍遥梦蝶 发表于 2013-3-27 20:34:54
zihao0604 发表于 2013-3-27 20:14
多谢,我理解你的意思,如果这么去做,表一中合并后的变量还是不能唯一地指定一条Case。
比如 00197   就 ...
哦,没看仔细~
那你就help merge,Stata提供了好几种merge的办法,有1:m, m:m什么的,好几种,我似乎记得有一种是能满足你的要求的,你看看help文件吧~

报纸
zihao0604 发表于 2013-3-27 22:19:56
逍遥梦蝶 发表于 2013-3-27 20:34
哦,没看仔细~
那你就help merge,Stata提供了好几种merge的办法,有1:m, m:m什么的,好几种,我似乎记 ...
嗯,我看过的,您说的是 一对一,多对一,和一对多,一个主键对一个主键,多个主键对一个主键或者一个主键对多个主键。这种对应关系必须要求主键有相同的。我这里给出的例子 在表一中的主键是 id 和year,由他们能确定唯一的Case,表二的主键是year 和province,要合并的话,一对一主键形式不能用,多对一和一对多也不恩呢该用。 并不能用上面的方法解决。所以才来提问的

地板
逍遥梦蝶 发表于 2013-3-27 22:57:57
zihao0604 发表于 2013-3-27 22:19
嗯,我看过的,您说的是 一对一,多对一,和一对多,一个主键对一个主键,多个主键对一个主键或者一个主键 ...
楼主,你QQ多少,我已经实现了,用QQ说吧。

7
逍遥梦蝶 发表于 2013-3-27 23:08:57
zihao0604 发表于 2013-3-27 22:19
嗯,我看过的,您说的是 一对一,多对一,和一对多,一个主键对一个主键,多个主键对一个主键或者一个主键 ...
就是两个表里都生成一个新的变量key=地区+年份(形如:“北京97”)
然后,以表2为master,键入merge 1:m key using 表1
结果就出来了。

捕获.PNG (23.51 KB)

捕获.PNG

8
zihao0604 发表于 2013-3-28 00:14:46
逍遥梦蝶 发表于 2013-3-27 23:08
就是两个表里都生成一个新的变量key=地区+年份(形如:“北京97”)
然后,以表2为master,键入merge 1: ...
感谢, 我的QQ是171380719. 我刚刚处理了一下,还是不成功 。加我QQ!多谢!

9
逍遥梦蝶 发表于 2013-3-28 11:05:03
zihao0604 发表于 2013-3-28 00:14
感谢, 我的QQ是171380719. 我刚刚处理了一下,还是不成功 。加我QQ!多谢!
那有可能是你的表里“地区年份”变量都不能唯一识别,是不是有矛盾的样本,比如97年北京有两个竞争指数之类的问题。再或者你描述的问题不准确?

10
richalken 发表于 2014-3-11 22:51:53
楼主,问题解决了吗,可以说说最后的解决方法吗?我也遇到相同的问题,谢谢啦。

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

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