楼主: 单名一个苗
25085 20

[数据管理求助] 用stata如何实现单个数字前加0 [推广有奖]

  • 3关注
  • 5粉丝

已卖:1261份资源

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
23157 个
通用积分
82.0087
学术水平
14 点
热心指数
18 点
信用等级
13 点
经验
6119 点
帖子
232
精华
0
在线时间
88 小时
注册时间
2013-11-24
最后登录
2016-3-25

楼主
单名一个苗 发表于 2015-3-16 09:48:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据库里有一个变量是月份,除了10,11,12月,我想将其他月份,比如1月的1改为01,2月的2改为02,用什么stata命令可以批量改?因为数据的数量太大了不可能挨个手动改,谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 如何实现 stata命令 数据库 stata编程 stata命令 stata软件 STATA问题 求教stata

沙发
SpencerMeng 在职认证  发表于 2015-3-16 10:31:03
楼主您好

可参考以下代码:
  1. clear
  2. input str2 month
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5
  8. 6
  9. 7
  10. 8
  11. 9
  12. 10
  13. 11
  14. 12
  15. end

  16. gen str2 month2 = month
  17. replace month2 = month if length(month) == 2
  18. replace month2 = "0" + month if length(month) == 1
  19. list
复制代码
已有 3 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 2 + 2 + 2 精彩帖子
Alfred_G + 3 + 4 + 4 热心帮助其他会员
蓝色 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 5  热心指数 + 9  信用等级 + 9   查看全部评分

藤椅
单名一个苗 发表于 2015-3-16 11:30:06
SpencerMeng 发表于 2015-3-16 10:31
楼主您好

可参考以下代码:
老师,运行错误了,提示“type mismatch   r(109);”

板凳
SpencerMeng 在职认证  发表于 2015-3-16 11:45:06
单名一个苗 发表于 2015-3-16 11:30
老师,运行错误了,提示“type mismatch   r(109);”
我给您的例子 肯定是没问题的 出现错误提示是因为您原始数据的原因。

善于发现问题,比解决一个问题更重要。

您的数据应该是数字型的吧?请改为字符型。

授人以鱼不如授人以渔  

假设你原来的变量名是month0 是数值型的,现在改为字符型且变量名为month

gen str2 month=string(month0)

报纸
单名一个苗 发表于 2015-3-16 14:33:39
SpencerMeng 发表于 2015-3-16 11:45
我给您的例子 肯定是没问题的 出现错误提示是因为您原始数据的原因。

善于发现问题,比解决一个问题更 ...
老师,谢谢您。其实是这样的,数据库里没有年龄这个变量,得先计算。有出生年,出生月这两个变量,出生年都是4位数,出生月除了10,11,12都是单个的,比如1月出生就是1,我想解决的问题就是如何利用这两个变量(出生年,出生月)来计算出年龄这个变量;之前搜索本站也有人提问这个问题,不同的是,他的数据库里出生年月都是类似198907这样格式的,我就想着也按他帖子下面大家回答的方法来操作,但是我得先把出生月这个变量前加0,再和出生年合并,才能有类似他的格式198907,,其实就是为了能计算出年龄来{:3_60:}

地板
SpencerMeng 在职认证  发表于 2015-3-16 16:23:50 来自手机
单名一个苗 发表于 2015-3-16 14:33
老师,谢谢您。其实是这样的,数据库里没有年龄这个变量,得先计算。有出生年,出生月这两个变量,出生年 ...
我懂你的意思。我的方法是可以的。你的出生月变量是什么类型?

7
单名一个苗 发表于 2015-3-17 09:21:58
SpencerMeng 发表于 2015-3-16 16:23
我懂你的意思。我的方法是可以的。你的出生月变量是什么类型?
老师,变量出生年和出生月都是数值型的呢

8
SpencerMeng 在职认证  发表于 2015-3-17 09:52:14
单名一个苗 发表于 2015-3-17 09:21
老师,变量出生年和出生月都是数值型的呢
这就是为什么会提示type mismatch了

你先把出生月改为字符型的,命令还是我4楼的那个代码。

9
单名一个苗 发表于 2015-3-17 10:50:07
SpencerMeng 发表于 2015-3-17 09:52
这就是为什么会提示type mismatch了

你先把出生月改为字符型的,命令还是我4楼的那个代码。
不知道怎么回事,怎么改都不行,,后来我用下面这条命令一下都算出来了    gen age=(ym(2013,09)-ym(出生年变量,出生月变量))/12 ;谢谢老师的耐心回答~
已有 1 人评分论坛币 热心指数 收起 理由
SpencerMeng + 10 + 1 鼓掌~

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

10
SpencerMeng 在职认证  发表于 2015-3-17 10:54:29
单名一个苗 发表于 2015-3-17 10:50
不知道怎么回事,怎么改都不行,,后来我用下面这条命令一下都算出来了    gen age=(ym(2013,09)-ym(出生 ...
感谢分享~!

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

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