全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
43329 10
2019-05-03
当年份是字符型数据时候destring date,replace ignore(-)或
gen ymd=date(year1,"YMD")
gen year1=year(ymd)
gen month=month(ymd)
gen day=day(ymd)
假设时间变量名为v1,显示为yyyymmdd的形式
对于v1是数字格式的情况,可用如下代码转换为Stata时间日期格式
gen year=int(v1/10000)
gen month=int((v1-year*10000)/100)
gen day=int((v1-year*10000-month*100))
gen date=mdy(month,day,year)
format date %td
或对于v1是字符串格式的情况,还可以可使用如下代码:
gen date=date(v1,"YMD")
format date %td %tm %tq %th %ty

当年份已经是数字型数据时候以上方法失效,例如date/month/year,具体如01nov1999在%td格式下面是一段奇怪数字,应进行如下结构转换
把日数据变成月度数据:
还是假设时间变量名为v1
gen ym=mofd(v1)
如果变成年度数据;
gen ym=yofd(V1)
如果变成季度数据:
gen yq=qofd(V1)

所以对于已经是01nov1999格式特别是wind数据就存在日/月/年格式本身已经被设置好为数值型年份格式,如果要提取转变为年月或年份数据,采用字符型公式转换是一段奇怪数值,Stata中数据日期格式问题,虽然该博客讲到了数值型结构转换的方法,但变成年度数据;gen Year=year(DateAnnounced)的公式是错误的,而该博客粘贴的英文说明却给出正确的转换方法,欢迎各位爱好者提出更好方法,也希望那些初学者不用苦恼到处翻帖找不到处理方法,不得不用Excel处理好再导,浪费很多宝贵时间,本帖是希望让更多初学者少走弯路,避免大量时间研究这种重复性问题,能花更多时间进行开创性研究。



二维码

扫码加我 拉你入群

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

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

全部回复
2019-6-29 16:57:52
太棒了,谢谢楼主提供好方法!
二维码

扫码加我 拉你入群

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

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

2019-12-19 22:52:02
说实话,我现在都没搞懂 我是数值 的 01may2015 ,我该怎么用我想if >=某个日子,可是根本不行啊。
二维码

扫码加我 拉你入群

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

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

2020-1-26 19:02:38
你好,请问stata中怎么把2020/01/01转换成2020-01-01
二维码

扫码加我 拉你入群

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

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

2020-2-13 02:30:15
您好,看完资料后,发现没有符合我问题的命令。请问如何将季度数据(%tq)提取年份呢?
二维码

扫码加我 拉你入群

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

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

2020-4-2 13:25:28
非常全面,谢谢楼主
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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