2017-02-27 8 views
1

私はこのデータを折りたたむことなくパネルにラグを生成する方法はありますか?

State  Year  Policy  other_variables 
a  2000  0    18 
a  2000  0    19 
        . 
        . 
        . 
a  2001  1    86 
a  2001  1    23 

poicy値は、それぞれの状態と年内に一定であるように見えるデータセットを持っています。しかし、それは異なる州と異なる年のために変わります。 other_variablesは観測ごとに異なります。

各状態のポリシー値のラグを生成します。ただし、xtset state yearは使用できません。L演算子を使用することはできません。各州の年の組み合わせには繰り返し値があります。私は、データセットを崩壊させ、ラグ変数を生成してから、データセットに再びマージして動作させることを知っています。私の質問は、この操作を行う簡単な方法はありますか?

+0

あなたが繰り返してきたような値、前回値のあなたの定義は何ですか?あなたはあなたですか?各州と各年の平均の差を計算したいですか? –

+0

質問を編集してより明確にします。 –

答えて

1

これが役立つことがあります。我々はそれを計算する方法を助言することができるように

clear 
input str1 State  Year  Policy  
a  2000  0    
a  2000  0    
a  2001  1    
a  2001  1    
end 

bysort State (Year) : gen diff = Policy - Policy[_n-1] if Year == Year[_n-1] + 1 
by State Year: replace diff = diff[_n-1] if missing(diff) 

list, sepby(State Year) 

    +------------------------------+ 
    | State Year Policy diff | 
    |------------------------------| 
    1. |  a 2000  0  . | 
    2. |  a 2000  0  . | 
    |------------------------------| 
    3. |  a 2001  1  1 | 
    4. |  a 2001  1  1 | 
    +------------------------------+ 
+0

私は少し答えを修正し、私が欲しいものを得る。ありがとう! –

関連する問題