第
6
回:データセットの結合
北村 友宏本日の内容
1. データセット結合の方法と種類
2. 結合前の変数名・観測値の確認と修正
Stata
でのデータセットの結合
▶ Stata のデータセット(dta ファイル)を複数用 意しておき,merge コマンドを使えばそれらを 結合できる. ▶ 「元のデータセット(master)」と「別のデー タセット(using)」を結合すると,_merge
と いう変数が作成され,それに結合状況が以下の ように記録される. ▶ master only (1):当該個体が元のデータセットのみ に存在. ▶ using only (2): 当該個体が別のデータセットのみに 存在. ▶ matched (3):当該個体が元のデータセットと別の データセットの両方に存在.Stata
での結合の種類
以下の種類から選ぶことができる.
▶ One-to-one on key variables
▶ Many-to-one on key variables
▶ One-to-many on key variables
▶ Many-to-many on key variables
▶ あまり使わない.
One-to-one on key variables
master prefecture male v 1 Tokyo 1 51 2 Tokyo 0 65 3 Aomori 1 32 4 Aomori 0 28 5 Saitama 1 45 using prefecture male w 1 Tokyo 1 7 2 Tokyo 0 9 3 Aomori 1 2 4 Aomori 0 3 5 Saitama 1 5 6 Saitama 0 2⇓
prefecture と male をキー変数として結合すると,One-to-one on key variables
結合後のデータセットprefecture male v w _merge 1 Tokyo 1 51 7 matched (3) 2 Tokyo 0 65 9 matched (3) 3 Aomori 1 32 2 matched (3) 4 Aomori 0 28 3 matched (3) 5 Saitama 1 45 5 matched (3) 6 Saitama 0 . 2 using only (2)
▶ 実際にはキー変数の観測値の昇順に並べ替え
Many-to-one on key variables
master prefecture district a 1 Tokyo Kanto 26 2 Aomori Tohoku 29 3 Saitama Kanto 22 4 Aichi Chubu 21 5 Iwate Tohoku 24 6 Kochi Shikoku 20 using district x 1 Tohoku 15 2 Kanto 13 3 Chubu 12 4 Kinki 11⇓
district をキー変数として結合すると,Many-to-one on key variables
結合後のデータセットprefecture district a x _merge 1 Tokyo Kanto 26 13 matched (3) 2 Aomori Tohoku 29 15 matched (3) 3 Saitama Kanto 22 13 matched (3) 4 Aichi Chubu 21 12 matched (3) 5 Iwate Tohoku 24 15 matched (3) 6 Kochi Shikoku 20 . master only (1) 7 . Kinki . 11 using only (2)
▶ 実際にはキー変数の観測値の昇順に並べ替え
One-to-many on key variables
master district x 1 Tohoku 15 2 Kanto 13 3 Chubu 12 4 Kinki 11 using prefecture district a 1 Tokyo Kanto 26 2 Aomori Tohoku 29 3 Saitama Kanto 22 4 Aichi Chubu 21 5 Iwate Tohoku 24 6 Kochi Shikoku 20⇓
district をキー変数として結合すると,One-to-many on key variables
結合後のデータセットdistrict x prefecture a _merge 1 Tohoku 15 Aomori 29 matched (3) 2 Tohoku 15 Iwate 24 matched (3) 3 Kanto 13 Tokyo 26 matched (3) 4 Kanto 13 Saitama 22 matched (3) 5 Chubu 12 Aichi 21 matched (3) 6 Kinki 11 . . master only (1) 7 Shikoku . Kochi 20 using only (2)
▶ 実際にはキー変数の観測値の昇順に並べ替え
One-to-one by observation
master x 1 15 2 13 3 12 4 11 using a 1 26 2 29 3 22 4 21 5 24 6 20⇓
観測値順に結合すると,One-to-one by observation
結合後のデータセット x a _merge 1 15 26 matched (3) 2 13 29 matched (3) 3 12 22 matched (3) 4 11 21 matched (3) 5 . 24 using only (2) 6 . 20 using only (2)所得・消費データと預金データの結合
master
prefecture income male 1 Hokkaido 227349 1 2 Aomori 233967 1 ... ... ... ... 47 Okinawa 214233 1 48 Hokkaido 207155 0 49 Aomori 169422 0 ... ... ... ... 93 Okinawa 144644 0
using prefecture deposit 1 Hokkaido 131180 2 Aomori 35527 ... ... ... 47 Okinawa 34381 ▶ 所得・消費のデータセット(master) ▶ 各都道府県が 2 回ずつ(男性・女性)出てくる. ▶ 預金のデータセット(using) ▶ 各都道府県に対し預金の数値が 1 つ.
⇓
結合後のデータセット
prefecture income male deposit _merge 1 Hokkaido 227349 1 131180 matched (3) 2 Aomori 233967 1 35527 matched (3) ... ... ... ... ... ... 47 Okinawa 214233 1 34381 matched (3) 48 Hokkaido 207155 0 131380 matched (3) 49 Aomori 169422 0 35527 matched (3) ... ... ... ... ... ... 93 Okinawa 144644 0 34381 matched (3) ▶ 実際にはキー変数(この場合は prefecture)の 観測値の昇順に並べ替えがなされる.
キー変数の変数名と観測値
▶ データセット結合時にキー変数としたい変数 の変数名と,その変数の各観測値は,master と using の両データセット間で全く同じでなけ ればならない.⇓
▶ 結合前に確認し,もし異なっていれば master と using の両データセット間で統一する必要が ある.変数名の変更
▶ Command ウィンドウに,rename
(変更前の変数名) (変更後の変数名) を入力して Enter キーを押すと,変数名を変更 できる. ▶ 「renameの後」および「変更前の変数名と変更後 の変数名の間」は半角スペース.変数の観測値の変更
▶ メニューバーから「Data」→「Data Editor」→
「Data Editor (Edit)」と操作し,変更したい観測 値のセルをクリックして変更後の観測値を入 力し,Enter キーを押す.
▶ 誤編集を防ぐために,観測値の変更が終わった
ら必ずData Editor (Edit) のウィンドウを閉
実習
1
1. Stata を起動. 2. メニューバーから「File」→「Log」→ 「Begin...」と操作し,デスクトップまたは 2018microdata1 フォルダに, lecture20180518.smcl という名前で保存. 3. メニューバーから「File」→「Open」と操作. 4. consumption2009.dta を選択し,「開く」をク リック.5. メニューバーから「Data」→「Data Editor」→
「Data Editor (Edit)」と操作.
6. 1 列目の変数名が
prefecture
となっているか を確認.なっていなければ,Command ウィン ドウに,rename
(現在の変数名)prefecture
と入力して Enter キーを押す. ▶ 「renameの後」および「現在の変数名と prefectureの間」は半角スペース. 7. Command ウィンドウに,list prefecture male female
と入力して Enter キーを押す.
▶ 「listの後」および「変数名と変数名の間」は半
角スペース.
▶ 「more」をクリックすれば下の隠れている部分が
8. 各都道府県名が以下のようになっていること
を確認.
▶ Hokkaido, Aomori, Iwate, Miyagi, Akita,
Yamagata, Fukushima, Ibaraki, Tochigi, Gumma, Saitama, Chiba, Tokyo, Kanagawa, Niigata, Toyama, Ishikawa, Fukui,
Yamanashi, Nagano, Gifu, Shizuoka, Aichi, Mie, Shiga, Kyoto, Osaka, Hyogo, Nara, Wakayama, Tottori, Shimane,
Okayama, Hiroshima, Yamaguchi, Tokushima, Kagawa, Ehime, Kochi, Fukuoka, Saga, Nagasaki, Kumamoto, Oita, Miyazaki, Kagoshima, Okinawa
入力ミスがあれば,メニューバーから「Data」 →「Data Editor」→「Data Editor (Edit)」と操作 し,ミスのある都道府県のセルをクリックして 指定の表記の都道府県名を入力し,Enter キー
9. (変数名や都道府県名を修正した場合は)上書 き保存. 10. Command ウィンドウに,
clear
と入力して Enter キーを押すと,Stata に何も 読み込まれていない状態になる. 11. メニューバーから「File」→「Open」と操作. 12. deposit2009.dta を選択し,「開く」をクリック.13. メニューバーから「Data」→「Data Editor」→
「Data Editor (Edit)」と操作.
14. 1 列目の変数名が
prefecture
となっているか を確認.なっていなければ,Command ウィン ドウに,rename
(現在の変数名)prefecture
と入力して Enter キーを押す. ▶ 「renameの後」および「現在の変数名と prefectureの間」は半角スペース. 15. Command ウィンドウに,list prefecture deposit
と入力して Enter キーを押す.
▶ 「listの後」および「変数名と変数名の間」は半
角スペース.
16. 各都道府県名が以下のようになっていること
を確認.
▶ Hokkaido, Aomori, Iwate, Miyagi, Akita,
Yamagata, Fukushima, Ibaraki, Tochigi, Gumma, Saitama, Chiba, Tokyo, Kanagawa, Niigata, Toyama, Ishikawa, Fukui,
Yamanashi, Nagano, Gifu, Shizuoka, Aichi, Mie, Shiga, Kyoto, Osaka, Hyogo, Nara, Wakayama, Tottori, Shimane,
Okayama, Hiroshima, Yamaguchi, Tokushima, Kagawa, Ehime, Kochi, Fukuoka, Saga, Nagasaki, Kumamoto, Oita, Miyazaki, Kagoshima, Okinawa
入力ミスがあれば,メニューバーから「Data」 →「Data Editor」→「Data Editor (Edit)」と操作 し,ミスのある都道府県のセルをクリックして 指定の表記の都道府県名を入力し,Enter キー
17. (変数名や都道府県名を修正した場合は)上書 き保存. 18. Command ウィンドウに,
clear
と入力して Enter キーを押すと,Stata に何も 読み込まれていない状態になる.実習
2
consumption2009.dta を master,deposit2009.dta を using として両データセットを結合してみる. 1. メニューバーから「File」→「Open」と操作. 2. consumption2009.dta を選択し,「開く」をク リック. 3. メニューバーから「Data」→「Combinedatasets」→「Merge two datasets」と操作.
4. Main タブの,Type of merge をMany-to-one on key variables (unique key for data on disk) と する.
5. Key variables: (match variables) の右端のボタ ンをクリックし,prefecture をクリックすると, 入力ボックスに「 prefecture」と入力される.
6. Filename of dataset on disk:の Browse... をク リックし,deposit2009.dta を選択して「開く」 をクリック. 7. OK をクリック.Results ウィンドウに,not matched の観測値数が 0 で,matched の観測値 数が 93 と表示されれば成功.それを確認して 上書き保存.
8. Command ウィンドウに,