2016-05-14 624 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 | 
    +-----------------+