Stata日期處理

數(shù)值型日期

從Excel中導入的日期(如2005/1/2的數(shù)值型日期)的處理方式:

# 直接轉(zhuǎn)化為日期格式
format date %td

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

# 將日度格式轉(zhuǎn)化為周度(wofd)、月度(mofd)、季度(qofd)、半年度(hofd)和年度(yofd)
gen yw = wofd(date)
format yw %tw

# 若要跨越日度進行轉(zhuǎn)換(如將周度轉(zhuǎn)化為月度,或月度轉(zhuǎn)化為半年度等),則需先轉(zhuǎn)化為日度,再從日度轉(zhuǎn)化為其他頻度。
gen yd = dofw(yw)
gen ym = mofd(yd)
format ym %tm

文本型日期

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

# 直接轉(zhuǎn)化為日期格式
gen date = date(date_string, "YMD")
# 從日期格式中提取年月日
gen year = year(date)
gen month = month(date)
gen day = day(date)
以此類推,還有halfyear,quarter,week,doy, dow等

# 拆分出文本年月日,并將年月日轉(zhuǎn)化為日期格式
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)

# 若數(shù)據(jù)為僅包含年月的文本(如“200501”),轉(zhuǎn)化為年月日期格式:
gen ym = date(ym_string, "YM")
gen ym1 = mofd(ym)
format ym1 %tm

# 若數(shù)據(jù)為僅包含“年-月”的文本(如“2005-01”),轉(zhuǎn)化為年月日期格式:
gen ym = monthly(ym_string,"YM")
以此類推,還有yearly, halfyearly, quarterly, weekly, date

保持日期格式輸出

將stata中的日期格式導出Excel時,或?qū)⑷掌谵D(zhuǎn)化為文本時,往往會出現(xiàn)導出的格式發(fā)生了改變,如 01jan2005 轉(zhuǎn)化為文本時,會變成“16438”.

# 保持顯示格式進行轉(zhuǎn)化
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

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容