ご存じのように、コードの問題は、2008年および2015年の値が、その年の間だけ欠損値ではなく、したがって両方の変数で欠損しないことです。 falseの場合、真と0場合year == 2008
を1と評価されているような表現にかかっ
by industry: egen tot_2008 = total(revenue/(year == 2008))
by industry: egen tot_2015 = total(revenue/(year == 2015))
gen change = (tot_2015-tot_2008)/tot_2008
:ここでは、各業界のためのすべての年に値を広めるための一つの方法です。 0で割った場合、結果は欠損値であり、Stataは無視します。これはまさにあなたが望むものです。業界内のすべての観測値に基づいて合計を取ることにより、各業界ごとに同じ値が記録されることが保証されます。 missingsが無視されることを、同じ原理にかかっ
by industry: egen tot_2008 = total(cond(year == 2008, revenue, .))
by industry: egen tot_2015 = total(cond(year == 2015, revenue, .))
gen change = (tot_2015-tot_2008)/tot_2008
:ここ
は、いくつかは、より明示的な見つけるもう一つの方法です。
egen
ファンクションtotal()
の使用に注意してください。 egen
関数sum()
はまだ機能していますが、同じ関数ですが、Stata関数sum()
との混乱を避けるために、その名前はStata 9の時点では文書化されていません。
あなたがそれをする対象のグラフと表で使用されるように、各産業のためのちょうど1観察をタグ付けする
egen tag = tag(industry)
を使用し、ダブル(実際に複数の)カウントを避けるために。議論について
、私はあなたはそれが失敗を示したように、コードの原因となる複数の誤字を修正しhere、セクション9と10
を参照してください。 (1)列はStata項ではなく(変数を代わりに使用する)(2)コードは変化率ではなく比例的な変化を与えます。 –