楼主: dazzlingpuck
6763 18

[数据管理求助] stata如何在变量倒数第二位加"0" [推广有奖]

  • 1关注
  • 0粉丝

硕士生

98%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
16.0120
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10832 点
帖子
34
精华
0
在线时间
384 小时
注册时间
2013-10-5
最后登录
2024-3-19

楼主
dazzlingpuck 发表于 2017-11-21 15:38:11 |AI写论文
10论坛币
现有一批数据,不同年份的数据ID号对不上。与其他年份相比,第一年的householdID最后一位少了一个0,导致ID倒数第二位也少了一个0。请问如何将ID倒数第二位加上一个"0",如:将"01020621801"改为"010206218001"、"01020621802"改为"010206218002"...第一次发帖不了解规则请见谅,如果原先贴的资料截图还是没有删掉请忽略,需要修改的部分原始资料代码贴出来如下:
  1. clear
  2. input ID householdID
  3. 01020621801 010206218
  4. 01020621802 010206218
  5. 01020621901 010206219
  6. 01020621902 010206219
  7. end
复制代码




2.jpeg (136.73 KB)

其他年份

其他年份

1.jpeg (132.07 KB)

第1年

第1年

最佳答案

关键词:Stata tata Community Unit Comm

沙发
黃河泉 在职认证  发表于 2017-11-21 15:38:12
dazzlingpuck 发表于 2017-11-24 19:25
非常感谢!
如果ID长度不一样还有办法批量操作吗?如下
clear
Please try:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long(ID householdID)
  4. 940281301   9402813
  5. 940281302   9402813
  6. 1020621801  10206218
  7. 1020621802  10206218
  8.          . 110206219
  9.          . 110206219
  10. end

  11. tostring ID, gen(id)
  12. gen n = strlen(id)

  13. gen ID1 = substr(id,1,n-1) + "0" + substr(id,n,1) if !missing(ID)
  14. destring ID1, replace
  15. format ID1 %14.0f
复制代码
已有 1 人评分学术水平 收起 理由
毛小舟 + 1 精彩帖子

总评分: 学术水平 + 1   查看全部评分

藤椅
黃河泉 在职认证  发表于 2017-11-21 16:39:20
请用 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

板凳
dazzlingpuck 发表于 2017-11-21 19:08:51
已解决,但我是通过householdID与原ID计算转换的。请问有没有更简洁的方法直接在ID倒数第二位加0?

报纸
蓝色 发表于 2017-11-22 08:32:11
dazzlingpuck 发表于 2017-11-21 19:08
已解决。用ID和加两个0的hhID相减,得到ID个位数,再与加一个0的hhID合并。请问有没有更简洁的方法直接在ID ...
先按照楼上黄老师的建议上传数据在说吧

地板
黃河泉 在职认证  发表于 2017-11-22 10:58:36
dazzlingpuck 发表于 2017-11-21 19:08
已解决。用ID和加两个0的hhID相减,得到ID个位数,再与加一个0的hhID合并。请问有没有更简洁的方法直接在ID ...
奇怪了!你用 dataex 所附之资料 (黑色是数值) 与你原先所附之资料不一样 (红色是文字),这样叫大家怎么回答?

7
黃河泉 在职认证  发表于 2017-11-22 11:08:13
dazzlingpuck 发表于 2017-11-21 19:08
已解决。用ID和加两个0的hhID相减,得到ID个位数,再与加一个0的hhID合并。请问有没有更简洁的方法直接在ID ...
而且,你的所有资料是在同一档案,还是不同档案(请说明)?这应该是个简单问题,你若说不清楚,很难帮上忙!

8
dazzlingpuck 发表于 2017-11-22 14:54:24
黃河泉 发表于 2017-11-22 11:08
而且,你的所有资料是在同一档案,还是不同档案(请说明)?这应该是个简单问题,你若说不清楚,很难帮上 ...
昨天按照您的要求修改时删图片了不知为何审核了很久还没有删掉,我再试试。

9
dazzlingpuck 发表于 2017-11-22 17:07:42
黃河泉 发表于 2017-11-22 11:08
而且,你的所有资料是在同一档案,还是不同档案(请说明)?这应该是个简单问题,你若说不清楚,很难帮上 ...
1. 如果dataex所附资料和原始资料截图的不同造成答题者困惑就不要看资料了,这是编辑提问过程中带来的bug,我只是想知道stata里有没有在变量的数值倒数第二位批量加0的方法。如果回答时需要用原始资料举例就用dataex所附资料,的确比看截图方便,截图删了几次都没删掉。原始资料的格式是字符型,不过这个应该不会造成太大困扰吧,我在处理数据时有需要就转数值型了,按照dataex资料操作就按数值格式来。
2. 请问这里说的档案是什么意思呢?不太明白这跟我的提问有什么关系,所以继续没有针对这一条作出修改。

10
蓝色 发表于 2017-11-22 18:30:52
字符有字符的处理方法
数值有数值的方法阿


档案 就是文件


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

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