全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅 求助成功区
8264 4
2017-05-06
悬赏 10 个论坛币 已解决
我这边有月度的时间数据(如图所示):

yrmon为2003m1,表示2003年1月。

请问Stata中有什么命令能提取这个变量中的年份和月份?
比如yrmon=2003m1对应的年份2003和月份1,也就是说我希望能生成两个新变量year和month,它们的值分别为2003和1.

我试过year()命令和month()命令,但无法正确提取出年份和月份。

希望网友们能提供帮助。
附件: 您需要登录才可以下载或查看附件。没有帐号?我要注册

最佳答案

逍遥梦蝶 查看完整内容

Sorry, 我也误解了year()和month()函数的用法。 year()和month()函数的填项必须是日期。你的例子里如果直接使用year(yrmon),Stata默认其取值还是日期,也就是离1960年1月1日的天数,所以会得到提取的年度为1961。 正确的解决方法是利用dofm()函数,例如:更简洁的代码,例如: gen year = year(dofm(yrmon)) gen month = month(dofm(yrmon))
二维码

扫码加我 拉你入群

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

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

全部回复
2017-5-6 00:43:14
xmwise 发表于 2017-5-6 09:50
不好意思,year()和month()命令并不能正确提取年份和月份,我的运算结果如图:
很明显,2003年对应的 ...
Sorry, 我也误解了year()和month()函数的用法。

year()和month()函数的填项必须是日期。你的例子里如果直接使用year(yrmon),Stata默认其取值还是日期,也就是离1960年1月1日的天数,所以会得到提取的年度为1961。

正确的解决方法是利用dofm()函数,例如:
复制代码
更简洁的代码,例如:
gen year = year(dofm(yrmon))
gen month = month(dofm(yrmon))
二维码

扫码加我 拉你入群

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

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

2017-5-6 03:29:39
根据图片显示的情况,yrmon变量应该已经保存称为Stata识别的月份变量,直接使用year()和month()函数是可行的。例如:
复制代码
希望能解决。
二维码

扫码加我 拉你入群

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

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

2017-5-6 09:50:37
逍遥梦蝶 发表于 2017-5-6 03:29
根据图片显示的情况,yrmon变量应该已经保存称为Stata识别的月份变量,直接使用year()和month()函数是可 ...
不好意思,year()和month()命令并不能正确提取年份和月份,我的运算结果如图:
很明显,2003年对应的年份为2003,不是1961,月份也不是5月和六月。

请问还有其他的解决方法吗?
附件: 您需要登录才可以下载或查看附件。没有帐号?我要注册
二维码

扫码加我 拉你入群

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

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

2017-5-6 23:48:03
逍遥梦蝶 发表于 2017-5-6 00:43
Sorry, 我也误解了year()和month()函数的用法。

year()和month()函数的填项必须是日期。你的例子里如果 ...
我试了这两个命令,确实可以生成正确的年份和月份变量,问题由此解决。

非常感谢您的帮助。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群