2016-05-14 626 views
0

我想从一天的开始日期和开始日期开始生成一个date变量:我有一个带有整数变量的滚动横截面,它指示自调查以来的天数最初被派遣。我也知道这个实际的日期。所以,理论上我应该能够生成一个适当的数据变量,但是在文档的任何位置我都找不到任何参考。Stata - 从天数中生成日期变量

想象,我有意见的一个月(在我的情况我有上百个每天观测的,但问题是在这种简化的情况相同):

set obs 30 
gen day=_n 

我也知道,一天1例如12月3日。 如何生成从3月12日到4月11日的每日date变量?

+2

Stata处理日期和时间在他们的文档中有很好的解释。如果您还没有这样做,那么您可以按照日期帮助的方式工作,这无疑是我系统中访问次数最多的文档,第二次访问是第24章(处理日期和时间)Stata用户指南PDF可从Stata的“帮助”菜单上的PDF文档项获得。在使用日期和时间之前,任何Stata用户都应该仔细阅读非常详细的第24章。在你的例子'日+每天(“1/8/2015”,“MDY”)'也许。 – 2016-05-14 15:38:08

+2

纠正上述情况,因为我不能再编辑它,可能是'day + daily(“11/3/2015”,“DMY”)'。 – 2016-05-14 15:44:36

+0

我认为'帮助日期时间'也是一个阅读的好地方。 – lmo

回答

1

良好的评论阅读帮助文件的日期/时间。这也是我最阅读的帮助文件,这表明它可能不适合新用户使用。

我使用mdy()来确定自1960年1月1日以来的天数,我将它添加到您的day变量中。有办法可以做到这一点,但这应该让你开始。

clear 
set obs 30 
gen day=_n 

generate dayCalendar = (day - 1) + mdy(3, 12, 2015) 
format dayCalendar %td 

这给了你以下。

. list in 1/5 

    +-----------------+ 
    | day dayCale~r | 
    |-----------------| 
    1. | 1 12mar2015 | 
    2. | 2 13mar2015 | 
    3. | 3 14mar2015 | 
    4. | 4 15mar2015 | 
    5. | 5 16mar2015 | 
    +-----------------+