Stata日期处理

数值型日期

从Excel中导入的日期(如2005/1/2的数值型日期)的处理方式:

# 直接转化为日期格式
format date %td

# 若带有时分秒:如“02Jan2005-01 00:00:00”的格式:
gen date = dofc(clock)
format date %td

# 将日度格式转化为周度(wofd)、月度(mofd)、季度(qofd)、半年度(hofd)和年度(yofd)
gen yw = wofd(date)
format yw %tw

# 若要跨越日度进行转换(如将周度转化为月度,或月度转化为半年度等),则需先转化为日度,再从日度转化为其他频度。
gen yd = dofw(yw)
gen ym = mofd(yd)
format ym %tm

文本型日期

从Excel中导入的文本(如“2005-01-02”或“20050102”的文本型日期)的处理方式:

# 直接转化为日期格式
gen date = date(date_string, "YMD")
# 从日期格式中提取年月日
gen year = year(date)
gen month = month(date)
gen day = day(date)
以此类推,还有halfyear,quarter,week,doy, dow等

# 拆分出文本年月日,并将年月日转化为日期格式
split date_string, p(-)
destring date_string1, gen(year)
destring date_string2, gen(month)
destring date_string3, gen(day)

# 将拆分得到的年月日合并为日期格式
gen date = mdy(month, day, year)

# 若数据为仅包含年月的文本(如“200501”),转化为年月日期格式:
gen ym = date(ym_string, "YM")
gen ym1 = mofd(ym)
format ym1 %tm

# 若数据为仅包含“年-月”的文本(如“2005-01”),转化为年月日期格式:
gen ym = monthly(ym_string,"YM")
以此类推,还有yearly, halfyearly, quarterly, weekly, date

保持日期格式输出

将stata中的日期格式导出Excel时,或将日期转化为文本时,往往会出现导出的格式发生了改变,如 01jan2005 转化为文本时,会变成“16438”.

# 保持显示格式进行转化
tostring date, force usedisplayformat replace

Reference

[1] https://mp.weixin.qq.com/s?__biz=Mzg2NzE1NTQwNQ==&mid=2247488509&idx=1&sn=a8ade118de13b48fc34f09774d6c5788&source=41#wechat_redirect

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容