将年月变量格式化为日期
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)
,所以 2012
而 mod(201201, 100)
是 1
。这两个组成部分是 ym()
的参数,它需要一个年份和一个月份的参数。
然后,只有到那时,您的 format
声明才会如您所愿。该命令不会创建日期变量。
有关详细信息,请参阅 Stata 中的 help datetime
,有关日期值和日期显示格式之间差异的说明,请参阅 。
在 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)
,所以 2012
而 mod(201201, 100)
是 1
。这两个组成部分是 ym()
的参数,它需要一个年份和一个月份的参数。
然后,只有到那时,您的 format
声明才会如您所愿。该命令不会创建日期变量。
有关详细信息,请参阅 Stata 中的 help datetime
,有关日期值和日期显示格式之间差异的说明,请参阅