9

我是 Stata 的新手,我想知道如何将包含日期的字符串变量更改为日期格式。

变量中的数据如下所示:

yyyy-mm-dd

我应该先删除破折号,以便 Stata 可以识别格式以便以后使用gen var = date()吗?

谢谢您的帮助。

4

2 回答 2

11

Statadate函数在删除分隔符方面很聪明。请参阅“日期函数”部分下的帮助 datetime_translation

如果您的日期在v1格式中,yyyy-mm-dd您可以指定命令:

generate v2 = date(v1, "YMD")
format %td v2

YMD称为掩码,它告诉 Stata 指定日期部分的顺序。第二行将为变量分配 Stata 每日日期格式,这意味着当您在数据中查看该变量时,它将以人类可读的形式显示。但是,日期存储为自 1960 年 1 月 1 日以来的天数。

试验该date功能的最佳方法是使用该display命令。第一行将显示一个整数,表示自 1960 年 1 月 1 日以来的天数。第二行将以人类可读的格式显示日期。

display date("2013-08-14", "YMD")
display %td date("2013-08-14", "YMD")
于 2013-08-14T10:21:45.700 回答
1

您可以在这里查看如何在 Stata 中转换为数据或这样做

tostring datedx, replace
generate str4 dxyr1= substr(datedx,1,4)
generate str2 dxmo1 = substr(datedx,6,7)
generate str2 dxda1 = substr(datedx,9,10)
destring dx*, replace
gen datedx1 = mdy(dxmo1, dxda1, dxyr1)
于 2013-08-14T08:37:55.453 回答