将年月变量格式化为日期

Formatting year month variable as date

在 Stata 中,我有一个变量 yearmonth,其格式为 201201、201202 等,适用于 2012 年至 2019 年,每月无间隙。当我将变量格式化为

format yearmonth %tm 

结果如下:2.0e+05 所有时期,每次的数字完全相同。 Dickey-Fuller 测试告诉我我的数据有差距(我没有)并且 tsfill 命令在每个周期之间生成几十个空观察。

如何正确设置 yearmonth 变量的格式以便将其设置为每月日期?

你确实有差距——例如,在 201212 和 201301 之间。考虑像

这样的语句
gen wanted = ym(floor(yearmonth/100), mod(yearmonth, 100))

它将像 201201 这样的整数解析为年份和月份的组成部分。所以 floor(201201/100)floor(2012.01),所以 2012mod(201201, 100)1。这两个组成部分是 ym() 的参数,它需要一个年份和一个月份的参数。

然后,只有到那时,您的 format 声明才会如您所愿。该命令不会创建日期变量。

有关详细信息,请参阅 Stata 中的 help datetime,有关日期值和日期显示格式之间差异的说明,请参阅