将数值变量转换为 Stata 日期格式

问题描述 投票:0回答:2

下面的代码将数字月观察值转换为日期格式,

input month
1
2
3
4
5
6
7
8
9
10
11
12
end

clonevar monthname = month
format monthname %tmMonth

然而,Stata 看到的不是 1 = January,而是 1 = February,2 = March 等等

month   monthname
1   February
2   March
3   April

如何解决?

date datetime formatting numbers stata
2个回答
0
投票

没有别的说,你的语法暗示你的变量

month
(及其任何克隆)是Stata每月日期变量,因此遵循Stata规则,即每月日期相对于1960年1月的原点0计算。因此1是二月[1960年也],依此类推。您的特定显示格式会抑制年份的显示,但作为 Stata 理解的一部分,它仍然存在——给定您的
format
命令。

最重要的是,分配特定的显示格式不会将变量从一种日期转换为另一种。有关更多信息,请参阅https://www.stata-journal.com/article.html?article=dm0067

如果你想要别的东西,你需要一些不同的语法。例如,如果您的值是一年中的月份,而年份是其他月份,那么您可能需要使用月份和年份的组合来创建每月日期。


0
投票

按照@NickCox的解释,解决方法是更换线

clonevar monthname = month

gen monthname = month-1

这将符合 Stata 对每月日期变量的理解(0 是一月)

© www.soinside.com 2019 - 2024. All rights reserved.