2017-04-14 17 views
0

我使用的是大型面板數據涵蓋1970年至2002年的一個變量有多年的1985年,1995年,1999年和2002年的變量看起來的觀察如下:如何在不同的時間段內滯後?

 +-------------------------+ 
    | country year groups | 
    |-------------------------| 
    1. | Germany 1985  5 | 
    2. | Germany 1995  10 | 
    3. | Germany 1997  . | 
    4. | Germany 1998  . | 
    5. | Germany 1999  20 | 
    +-------------------------+ 

我的本意是通過其下一個觀察來延遲羣體變量。我已經創建了一個虛擬顯示1這些時間段,但我不知道如何採取下一步。我能做些什麼來延遲這個組變量?

回答

0

我不清楚你是否希望團體代表下一個或前一年的價值。總之,這個語法是相當簡單的,如果你在數據集中的每個國家/每年只有一次:

bysort country year: replace groups=groups[_n-1] //for the previous observation 
bysort country year: replace groups=groups[_n+1] //for the next observation 

我不知道你爲什麼這樣做,但也許你想擺脫缺失值。在這種情況下,請查看this post或來自ssc的carryforward

+0

我的意圖是使用[_n-1]創建一個工具。當我運行迴歸時,Stata只考慮1985年,1995年,1999年和2002年的時間段。您的方法可以工作,但前提是每隔一年除了這四個年度之外的其他年份。但是如果我這樣做,2002年的觀測將轉移到下一個國家。我想我可以創建一個副本並手動刪除2002年的觀測值,然後將其延後。 – Adrian

+0

你可以避免將它移動到另一個國家,因爲它可以通過在國家一年之前添加,比如:bysort country year:groups = groups [_n-1]我也會編輯我的答案。 – eborbath