楼主: pokman
3771 6

[数据管理求助] 如何将同一行的几个单元格,逗号隔开的字符串分割后,匹配形成不同观察值? [推广有奖]

  • 3关注
  • 0粉丝

已卖:1份资源

博士生

20%

还不是VIP/贵宾

-

威望
0
论坛币
430 个
通用积分
3.7500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
464 点
帖子
34
精华
0
在线时间
469 小时
注册时间
2012-5-1
最后登录
2025-3-30

楼主
pokman 发表于 2018-6-29 16:46:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
已有数据形态如下:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str16 name str4 year str8 gender str16 origins
  4. "王伟,刘霞,范仕宽" "2015" "男,女,男" "安徽,哈尔滨,辽宁"
  5. "何一文,刘明"      "2015" "男,男"    "浙江,福建"      
  6. "范艳,毛军"        "2016" "女,男"    "福建,上海"      
  7. "龚华,李阳阳"      "2016" "男,男"    "安徽,江苏"      
  8. end
复制代码



想要通过数据处理形成以下的对应关系:
姓名年份性别出生地
王伟

2015

安徽
刘霞

2015

哈尔滨
范仕宽

2015

辽宁


请问stata是否可以实现,如何实现?
若无法使用stata实线请问可以通过什么方法实现?
二维码

扫码加我 拉你入群

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

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

关键词:如何实现 方法实现 对应关系 数据处理 出生地 字符串 数据处理 单元格拆分 匹配值

回帖推荐

黃河泉 发表于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。

黃河泉 发表于4楼  查看完整内容

Nick Cox 建议:

沙发
黃河泉 在职认证  发表于 2018-6-29 16:51:51
你若要问程序,永远附上资料;若要附上资料,永远用 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

藤椅
pokman 发表于 2018-6-29 17:07:40
黃河泉 发表于 2018-6-29 16:51
你若要问程序,永远附上资料;若要附上资料,永远用 dataex 印出资料;先 ssc install dataex (并见说明), ...
不好意思 第一次提问

板凳
黃河泉 在职认证  发表于 2018-6-29 18:27:34
pokman 发表于 2018-6-29 17:07
不好意思 第一次提问
Nick Cox 建议:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str25 name str4 year str12 gender str26 origins
  4. "王伟,刘霞,范仕宽" "2015" "男,女,男" "安徽,哈尔滨,辽宁"
  5. "何一文,刘明"      "2015" "男,男"    "浙江,福建"      
  6. "范艳,毛军"        "2016" "女,男"    "福建,上海"      
  7. "龚华,李阳阳"      "2016" "男,男"    "安徽,江苏"      
  8. end

  9. ren origins ori
  10. gen origins = subinstr(ori,",",",",3)
  11. drop ori

  12. split name, p(,)
  13. split gender, p(,)
  14. split origins, p(,)

  15. gen long id = _n
  16. drop name origins gender

  17. reshape long name origins gender, i(id) j(whatever)
  18. drop if missing(name) & missing(gender) & missing(origins)
  19. list, sepby(id)
复制代码
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
逐梦的太阳 + 5 + 5 + 5 热心帮助其他会员

总评分: 论坛币 + 5  学术水平 + 5  热心指数 + 5   查看全部评分

报纸
黃河泉 在职认证  发表于 2018-6-29 18:27:50
pokman 发表于 2018-6-29 17:07
不好意思 第一次提问
  1. . list, sepby(id)

  2.      +--------------------------------------------------+
  3.      | id   whatever   year     name   gender   origins |
  4.      |--------------------------------------------------|
  5.   1. |  1          1   2015     王伟       男      安徽 |
  6.   2. |  1          2   2015     刘霞       女    哈尔滨 |
  7.   3. |  1          3   2015   范仕宽       男      辽宁 |
  8.      |--------------------------------------------------|
  9.   4. |  2          1   2015   何一文       男      浙江 |
  10.   5. |  2          2   2015     刘明       男      福建 |
  11.      |--------------------------------------------------|
  12.   6. |  3          1   2016     范艳       女      福建 |
  13.   7. |  3          2   2016     毛军       男      上海 |
  14.      |--------------------------------------------------|
  15.   8. |  4          1   2016     龚华       男      安徽 |
  16.   9. |  4          2   2016   李阳阳       男      江苏 |
  17.      +--------------------------------------------------+
复制代码

地板
pokman 发表于 2018-6-29 18:36:37
黃河泉 发表于 2018-6-29 18:27
Nick Cox 建议:
多谢老师慷慨解答!

7
pokman 发表于 2018-6-29 18:40:37
总结一下:
1.split指令分割字符串
2.reshape重新构造数据

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

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