楼主: se7enchn
3584 11

[数据管理求助] stata是否有和sas类似的多对多merge的功能? [推广有奖]

  • 2关注
  • 0粉丝

大专生

16%

还不是VIP/贵宾

-

威望
0
论坛币
22 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
436 点
帖子
18
精华
0
在线时间
59 小时
注册时间
2014-2-3
最后登录
2021-5-5

楼主
se7enchn 发表于 2017-12-26 22:19:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如果有两个数据集如下:
dataset1:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long(reportid stkcd)
  4. 10012929    590
  5. 9999080 600535
  6. 9981240 600750
  7. 9934778 600750
  8. 10006677    590
  9. end
复制代码
dataset2:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long stkcd float stkrt
  4. 590 -.011501
  5. 590  .031231
  6. 590        .
  7. 590        .
  8. 590  .011283
  9. 600535  .007854
  10. 600535  .008044
  11. 600535 -.003741
  12. 600535  .026783
  13. 600535 -.000244

  14. 600750  .001796
  15. 600750 -.017569
  16. 600750        .
  17. 600750        .
  18. 600750 -.012774

  19. end
复制代码


想要实现的效果就是每个reportid都是关于一只股票,把这个report和对应股票的收益率连接起来:
  1. [/size][/color]
  2. clear
  3. input long reportid stkcd stkrt
  4. 10012929    590 -.011501
  5. 10012929    590  .031231
  6. 10012929    590       .
  7. 10012929    590       .
  8. 10012929    590 .011283

  9. 9999080 600535  .007854
  10. 9999080 600535  .008044
  11. 9999080 600535 -.003741
  12. 9999080 600535  .026783
  13. 9999080 600535 -.000244

  14. 9981240 600750  .001796
  15. 9981240 600750 -.017569
  16. 9981240 600750        .
  17. 9981240 600750        .
  18. 9981240 600750 -.012774

  19. 9934778 600750  .001796
  20. 9934778 600750 -.017569
  21. 9934778 600750        .
  22. 9934778 600750        .
  23. 9934778 600750 -.012774

  24. 10006677    590 -.011501

  25. 10006677    590  .031231
  26. 10006677    590        .
  27. 10006677    590        .
  28. 10006677    590  .011283

  29. [color=#333333][size=15px]end[/size][/color]
  30. [color=#333333][size=15px]
复制代码





有大神有什么好建议吗?

二维码

扫码加我 拉你入群

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

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

关键词:Merge Stata tata dataset Master

沙发
黃河泉 在职认证  发表于 2017-12-27 07:36:00
1. 合并需要共同依据,你两个档案共同的变量是 stk,而且看起来不是一对一之情况 (我虽然对 SAS 不熟,我几乎不相信它会比 Stata 在此 merge 方面更强 ),虽然 Stata 有 merge m:m 之选项,大部分的人都强烈建议不要用,因为合并错了你也不知道(很可能 SAS 也会这样 )。2. 建议请用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

藤椅
arikjin 在职认证  发表于 2017-12-27 08:03:45
https://stata-club.github.io/%E6%8E%A8%E6%96%87/20171129/
可以看看这篇文章里面介绍的多对多合并的方法

板凳
se7enchn 发表于 2017-12-27 09:31:14
黃河泉 发表于 2017-12-27 07:36
1. 合并需要共同依据,你两个档案共同的变量是 stk,而且看起来不是一对一之情况 (我虽然对 SAS 不熟,我几 ...
感谢建议,我已经修改了,希望现在看起来直观点。

报纸
黃河泉 在职认证  发表于 2017-12-27 09:39:53
se7enchn 发表于 2017-12-27 09:31
感谢建议,我已经修改了,希望现在看起来直观点。
1. 謝謝資料,看起來的確是多對多的情況(再重複一次,Stata 的多對多指令 m:m 極有可能會有錯的結果,我也相信所有的軟體都一樣),所以需要更多的資訊。2. 你必須更"精確"說明你要的結果(你現在的說明無法看出,可以的話,請用你的資料舉例說明)!

地板
se7enchn 发表于 2017-12-27 10:06:19
黃河泉 发表于 2017-12-27 09:39
1. 謝謝資料,看起來的確是多對多的情況(再重複一次,Stata 的多對多指令 m:m 極有可能會有錯的結果,我 ...
我又重新编辑了一下。其实我试过m:m,也得不到这个想要的结果,而且看起来非常之混乱。

7
se7enchn 发表于 2017-12-27 10:09:40
arikjin 发表于 2017-12-27 08:03
https://stata-club.github.io/%E6%8E%A8%E6%96%87/20171129/
可以看看这篇文章里面介绍的多对多合并的方法 ...
谢谢,我去研究一下,这个比较像我需要的效果!

8
黃河泉 在职认证  发表于 2017-12-27 10:11:01
se7enchn 发表于 2017-12-27 10:06
我又重新编辑了一下。其实我试过m:m,也得不到这个想要的结果,而且看起来非常之混乱。
我讲过,你若不提供"更精确"之说明,没有人能帮忙你!

9
se7enchn 发表于 2017-12-27 10:13:47
黃河泉 发表于 2017-12-27 10:11
我讲过,你若不提供"更精确"之说明,没有人能帮忙你!
额,我已经把想要的效果贴出来了,不是很清楚还要怎么“更精确”?

10
黃河泉 在职认证  发表于 2017-12-27 10:48:03
se7enchn 发表于 2017-12-27 10:13
额,我已经把想要的效果贴出来了,不是很清楚还要怎么“更精确”?
看看这个是不是你要的?
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long(reportid stkcd)
  4. 10012929    590
  5. 9999080 600535
  6. 9981240 600750
  7. 9934778 600750
  8. 10006677    590
  9. end

  10. tempfile a
  11. save `a'

  12. * Example generated by -dataex-. To install: ssc install dataex
  13. clear
  14. input long stkcd float stkrt
  15. 590 -.011501
  16. 590  .031231
  17. 590        .
  18. 590        .
  19. 590  .011283
  20. 600535  .007854
  21. 600535  .008044
  22. 600535 -.003741
  23. 600535  .026783
  24. 600535 -.000244

  25. 600750  .001796
  26. 600750 -.017569
  27. 600750        .
  28. 600750        .
  29. 600750 -.012774
  30. end

  31. joinby stkcd using `a'
  32. sort stkcd reportid stkrt
复制代码

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

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