楼主: wyddy
3428 8

[数据管理求助] stata横纵坐标数据匹配问题 [推广有奖]

  • 1关注
  • 1粉丝

博士生

62%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
13.1786
学术水平
3 点
热心指数
6 点
信用等级
4 点
经验
2909 点
帖子
220
精华
0
在线时间
367 小时
注册时间
2010-7-29
最后登录
2023-11-3

10论坛币
这是stata里的数据   cityseries是变量,列关于city*的有600多个,observation有200多个  我想把cityseries里有的city的变量保留  其余的删掉 ,(例子:cityseries里又city3.这两个变量要保留,city1,city2没有,要删除) 不知道怎么用stata实现?



111.jpg (72.42 KB)

111.jpg

最佳答案

ywh19860616 查看完整内容

有点繁琐,不过能实现,请核对。
关键词:Stata 数据匹配 tata 纵坐标 observation
沙发
ywh19860616 发表于 2015-3-1 17:41:20 |只看作者 |坛友微信交流群
  1. clear
  2. inp str6 cityseries city1 city2 city3 city4 city5 city6
  3. city1 1 4 6 9 4 7
  4. city3 4 7 8 5 7 5
  5. city5 4 6 7 8 6 9
  6. city6 5 6 8 4 8 4
  7. end

  8. gen cs = substr(cityseries,5,.)
  9. destring cs,replace force

  10. ds
  11. local varlist `r(varlist)'
  12. di "`varlist'"

  13. local exclu cityseries cs
  14. local newlist:list varlist - exclu
  15. di "`newlist'"
  16. foreach k of local newlist {
  17. tempvar v`k' d`k'
  18. qui gen `v`k'' = substr("`k'",-1,.)
  19. qui destring `v`k'',replace force
  20. qui gen `d`k'' = cs - `v`k''
  21. qui replace `d`k'' = . if `d`k''==0 in 1/l
  22. qui mdesc `d`k''
  23. scalar mnum = r(miss)
  24. if mnum<1 {
  25. qui drop `k'
  26. }
  27. }
复制代码


有点繁琐,不过能实现,请核对。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
SpencerMeng + 60 + 2 + 2 + 2 有您在不怕问题解决不掉~!

总评分: 论坛币 + 60  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

藤椅
wyddy 发表于 2015-3-1 17:58:32 |只看作者 |坛友微信交流群
没解决!

使用道具

板凳
wyddy 发表于 2015-3-1 17:59:43 |只看作者 |坛友微信交流群
还没解决,继续求助中

使用道具

报纸
wyddy 发表于 2015-3-7 14:49:08 |只看作者 |坛友微信交流群
stata自带的这一套坐标数据是有点问题的,有两个变量重复进入了。也就是说,这套数据给的原始city一共有620个,但是只有618个不重复的,所以要先把重复的值给剔除掉,才能进行进一步处理

使用道具

地板
SpencerMeng 在职认证  发表于 2015-4-20 09:22:06 |只看作者 |坛友微信交流群
wyddy 发表于 2015-3-7 14:49
stata自带的这一套坐标数据是有点问题的,有两个变量重复进入了。也就是说,这套数据给的原始city一共有620 ...
暂时只能想到这。。
  1. clear
  2. inp str6 cityseries city1 city2 city3 city4 city5 city6
  3. "city1" 1 4 6 9 4 7
  4. "city3" 4 7 8 5 7 5
  5. "city5" 4 6 7 8 6 9
  6. "city6" 5 6 8 4 8 4
  7. end

  8. gen num=substr(cityseries,-1,1) //取出最后一位
  9. destring num,gen (num2)
  10. drop num

  11. xpose,clear
复制代码
给你@了几位高手
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
statax + 25 + 3 + 3 精彩帖子

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

使用道具

7
wyddy 发表于 2015-4-23 16:39:29 |只看作者 |坛友微信交流群
SpencerMeng 发表于 2015-4-20 09:22
暂时只能想到这。。给你@了几位高手
谢谢,已经解决,直接用的是drop duplicate ,把重复的删除了,然后再做,非常感谢您的详细解答,谢谢!

使用道具

8
wyddy 发表于 2015-4-23 16:39:32 |只看作者 |坛友微信交流群
SpencerMeng 发表于 2015-4-20 09:22
暂时只能想到这。。给你@了几位高手
谢谢,已经解决,直接用的是drop duplicate ,把重复的删除了,然后再做,非常感谢您的详细解答,谢谢!

使用道具

9
wyddy 发表于 2015-4-23 16:43:25 |只看作者 |坛友微信交流群
SpencerMeng 发表于 2015-4-20 09:22
暂时只能想到这。。给你@了几位高手
谢谢,已经解决,直接用的是drop duplicate ,把重复的删除了,然后再做,非常感谢您的详细解答,谢谢!

使用道具

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

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

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

GMT+8, 2024-5-1 12:20