如何用Stata将日度面板数据转换为周一至周日的周度数据
解决Stata中周一至周日周度日期转换问题
问题背景
我有2019年1月1日至2022年6月30日的400款车型日度面板数据,需要转换成各车型的周度观测值。使用wofd()命令时发现,Stata默认的周划分是周二至周一,不符合我需要的周一至周日的周度区间需求。
原代码
format date %tdCCYY-NN-DD_Day gen int week = wofd(date) order week, after (date) format week %twCCYY-WW
示例数据
car date week milg fuelc A1008 2019-01-01 Tue 2019-01 1 6 A1008 2019-01-02 Wed 2019-01 2 8 A1008 2019-01-03 Thu 2019-01 5 4 A1008 2019-01-04 Fri 2019-01 4 7 A1008 2019-01-05 Sat 2019-01 5 8 A1008 2019-01-06 Sun 2019-01 1 5 A1008 2019-01-07 Mon 2019-01 2 9 A1008 2019-01-08 Tue 2019-02 5 8 A1008 2019-01-09 Wed 2019-02 6 9 F2906 2019-01-01 Tue 2019-01 1 6 F2906 2019-01-02 Wed 2019-01 4 8 F2906 2019-01-03 Thu 2019-01 2 6 F2906 2019-01-04 Fri 2019-01 4 9 F2906 2019-01-05 Sat 2019-01 1 9 F2906 2019-01-06 Sun 2019-01 4 9 F2906 2019-01-07 Mon 2019-01 2 6 F2906 2019-01-08 Tue 2019-02 6 9 F2906 2019-01-09 Wed 2019-02 5 8 RR389 2019-01-01 Tue 2019-01 1 7 RR389 2019-01-02 Wed 2019-01 5 4 RR389 2019-01-03 Thu 2019-01 2 7 RR389 2019-01-04 Fri 2019-01 6 9 RR389 2019-01-05 Sat 2019-01 1 9 RR389 2019-01-06 Sun 2019-01 4 8 RR389 2019-01-07 Mon 2019-01 1 7
解决方案
Stata的wofd()默认以周一为每周第一天,但周数计数逻辑导致显示的区间是周二至周一。要实现周一至周日的周划分,可通过日期偏移调整实现:
1. 调整日期:将周日归至前一周
利用dow()函数判断日期是否为周日(返回值为0),若为周日则将日期减1天,让周日纳入前一周的区间:
gen date_adjusted = date replace date_adjusted = date - 1 if dow(date) == 0
2. 生成周一至周日的周变量
基于调整后的日期生成周变量,此时周数对应的区间就是周一至周日:
gen int week_monsun = wofd(date_adjusted) format week_monsun %twCCYY-WW order week_monsun, after(date)
3. 验证逻辑
调整后:
- 2019年1月6日(周日)调整为1月5日(周六),对应周数仍为2019-01
- 2019年1月7日(周一)保持原日期,对应周数变为2019-02
这样就实现了周一至周日的周度区间划分。
完整代码
* 格式化日期显示 format date %tdCCYY-NN-DD_Day * 调整日期:将周日偏移至前一天,统一周区间为周一至周日 gen date_adjusted = date replace date_adjusted = date - 1 if dow(date) == 0 * 生成目标周变量并格式化 gen int week_monsun = wofd(date_adjusted) format week_monsun %twCCYY-WW * 调整变量顺序 order week_monsun, after(date) * 可选:删除临时调整变量 drop date_adjusted
聚合为周度观测值
如果需要将日度数据聚合为周度(如求和、均值),可使用collapse命令:
bysort car week_monsun: collapse (sum) milg fuelc, fast
内容的提问来源于stack exchange,提问作者susign
相关产品推荐
相关产品推荐

