私は4200世帯の20,000以上のレコードを持つ世帯データのセットを持っています。私のデータセットには、世帯IDの列はなく、すべてのレコードは世帯メンバーごとにあります。人のシリアル番号の列があり、すべての「1」で世帯を変更する必要があります(つまり、世帯の番号を付け始めた場合、最初の人のシリアル番号が1に等しい場合、対応するHH_IDは変更する必要があります「1」になります。人のシリアル番号=1の次のレコードが一致すると、HH_IDは2になります。)したがって、HH_IDという名前の列を追加し、1〜400の番号を付けます。STATAを使用してプログラムを作成するにはどうすればよいですか?
1 に答える
4
あなたが望むのは(personid
個人識別子の変数を想定)
. gen hhid = sum(personid == 1)
それでおしまい。説明はコードよりも長いです。式personid == 1
は、真の場合は 1、偽の場合は 0 として評価されます。最初の世帯である 1 人目の場合は 1 になり、同じ世帯の他の人は 0 になります。2 番目の世帯である 1 人目の場合は 1 になります。この関数sum()
は累積または実行中の合計を提供するため、1,1,1,2,2,2,2,3,3,3,... となる何かで終了する必要があります。明らかに、1、2、 3sなどは世帯人数によって異なります。
Stata の true と false については、
http://www.stata.com/support/faqs/data-management/true-and-false/index.html
于 2013-02-07T18:22:27.153 に答える