2549 14

[编程问题求助] 请教有关“数据合并”的问题 [推广有奖]

  • 1关注
  • 57粉丝

已卖:880份资源

院士

6%

还不是VIP/贵宾

-

威望
0
论坛币
8865 个
通用积分
289.6201
学术水平
39 点
热心指数
41 点
信用等级
33 点
经验
25352 点
帖子
689
精华
0
在线时间
5203 小时
注册时间
2017-10-15
最后登录
2026-1-6

楼主
机智的小球球IU 学生认证  发表于 2017-12-20 19:20:44 |AI写论文
188论坛币
RT,今天做数据匹配遇到一个问题:
dataA:year(1999-2007)、citycode(相同年份有重复)、panelid、其他vars.
dataB:year(1995-2015)、citycode,其他vars.
请问这两种数据如何匹配呢? 望各位大牛解答。谢谢~

简单一点呈现:
Adata:    (一年多个citycode)                         Bdata:  (多年一个citycode)
year     citycode    panelid     num                                                                                                                                                                                                     year   citycode       mainctcy

2000     111               1          80                                     2000     111               1
2000     111               2          78                                     2001     111               0
2000     112               3          65                                     2003     111               0
2001     122               4         90                                      2000     123               1
2001     123               5         66                                      2001     123               0
2002     124               6          45                                     2003     135               1
2003     132               7         33                                      2005     135               1
  (地区、工厂、工人数;相同地区有不同工厂)                      (地区、省会)
研究:不同地区的城市 是否是省会城市对工厂工人数的影响。




最佳答案

黃河泉 查看完整内容

这两个档案没有共同的部分,所以看不出结果是否正确?但请试试类似
关键词:数据合并 Panel Tyco code City

沙发
黃河泉 在职认证  发表于 2017-12-20 19:20:45
机智的小球球IU 发表于 2017-12-22 12:18
B数据中,citycode 和year没有重复值。
----------------------- copy starting from the next line --- ...
这两个档案没有共同的部分,所以看不出结果是否正确?但请试试类似
  1. use A, clear
  2. merge m:1 citycode year using B
复制代码

藤椅
StefanieShi 发表于 2017-12-20 21:13:09
Adata:多个citycode
Bdata:citycode很少
采用命令:merge m:1  citycode
具体的参照merge命令

板凳
豆饼 发表于 2017-12-21 14:31:00
你到底匹配成什么样子没有说清楚。
是A去匹配B还是b去匹配A。
建议可以考虑用dplyr包的left_jion()

报纸
黃河泉 在职认证  发表于 2017-12-22 07:02:53
1. 请先"个别"
  1. sort citycode year
复制代码
。2. 检查一下,citycode 与 year 有无 missing values (.),有的话需要现去掉!3. 利用 dataex "个别" 印出资料并 post 上网,
  1. dataex citycode year num

  2. dataex citycode year mainctcy
复制代码

地板
机智的小球球IU 学生认证  发表于 2017-12-22 12:09:34
黃河泉 发表于 2017-12-22 07:02
1. 请先"个别"。2. 检查一下,citycode 与 year 有无 missing values (.),有的话需要现去掉!3. 利用 data ...
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(citycode year)
  4.   1100 2000
  5.   1100 2000
  6.   2100 1999
  7.   2100 1999
  8.   2200 2000
  9.   2200 2000
  10.   2200 2000
  11.   2200 2000
  12.   2200 2000
  13.   3300 2000
  14.   3300 2000
  15.   3300 2000
  16. 110000 2000
  17. 110000 2000
  18. 110000 2000
  19. 110000 2000
  20. 110000 2000
  21. 110000 2000
  22. 110000 2000
  23. 110000 2000
  24. end
复制代码
------------------ copy up to and including the previous line ------------------

7
机智的小球球IU 学生认证  发表于 2017-12-22 12:15:29
黃河泉 发表于 2017-12-22 07:02
1. 请先"个别"。2. 检查一下,citycode 与 year 有无 missing values (.),有的话需要现去掉!3. 利用 data ...
老师,我的A数据库中 citycode和year是有相同的,这也是合理的数据,因为同一年份、同一城市有不同的企业。
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input float(citycode year)
  4.   1100 2000
  5.   1100 2000
  6.   2100 1999
  7.   2100 1999
  8.   2200 2000
  9.   2200 2000
  10.   2200 2000
  11.   2200 2000
  12.   2200 2000
  13.   3300 2000
  14.   3300 2000
  15.   3300 2000
  16. 110000 2000
  17. 110000 2000
  18. 110000 2000
  19. 110000 2000
  20. 110000 2000
  21. 110000 2000
  22. 110000 2000
  23. 110000 2000
  24. end
复制代码
------------------ copy up to and including the previous line ------------------

8
机智的小球球IU 学生认证  发表于 2017-12-22 12:18:13
黃河泉 发表于 2017-12-22 07:02
1. 请先"个别"。2. 检查一下,citycode 与 year 有无 missing values (.),有的话需要现去掉!3. 利用 data ...
B数据中,citycode 和year没有重复值。
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long citycode int year
  4. 110000 2002
  5. 110000 2012
  6. 120000 1997
  7. 120000 2007
  8. 120000 2012
  9. 130100 2001
  10. 130100 2006
  11. 130100 2008
  12. 130100 2010
  13. 130200 2002
  14. 130200 2006
  15. 130200 2010
  16. 130200 2013
  17. 130200 2014
  18. 130300 2002
  19. 130300 2006
  20. 130300 2013
  21. 130300 2015
  22. 130400 2003
  23. 130400 2004
  24. 130400 2006
  25. 130400 2008
  26. 130400 2011
  27. 130400 2013
  28. 130500 2002
  29. 130500 2008
  30. 130500 2011
  31. 130500 2014
  32. 130600 2001
  33. 130600 2005
  34. 130600 2006
  35. 130600 2008
  36. 130600 2012
  37. 130600 2013
  38. 130700 2003
  39. 130700 2006
  40. 130700 2008
  41. 130700 2012
  42. 130700 2015
  43. 130800 2001
  44. 130800 2008
  45. 130800 2012
  46. 130800 2015
  47. 130900 2000
  48. 130900 2005
  49. 130900 2013
  50. 130900 2014
  51. 131000 2003
  52. 131000 2005
  53. 131000 2008
  54. end
复制代码
------------------ copy up to and including the previous line ------------------

9
机智的小球球IU 学生认证  发表于 2017-12-22 16:37:50
黃河泉 发表于 2017-12-22 15:33
这两个档案没有共同的部分,所以看不出结果是否正确?但请试试类似
hah,老师,我用的就是这种方法进行匹配的。然后我遇到一个问题:merge合并是以A数据为主(企业数据)B数据为子数据(省市数据)。我的B数据中,设置maincicy(是否为省会城市),如果是,则=1,否则为0。但其实是,我的B数据中都是省会城市,所以我的maincity值都是1.那么,如何根据 _merge的值来对合并后的maincity赋值呢?是对_merge=1还是对_merge=2的进行赋值为0.??【不知道我是否陈述清楚问题】

10
机智的小球球IU 学生认证  发表于 2017-12-22 16:43:06
StefanieShi 发表于 2017-12-20 21:13
Adata:多个citycode
Bdata:citycode很少
采用命令:merge m:1  citycode
好的,正在做,谢谢您的解答。

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

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