Stataのmergeの応用
Stataで複数のデータを合わせたいときに使うのがmergeだが、
意外といろいろできることに気づいた。
基本的な文法としては、
merge 変数名 using ファイル名
であるが、最近ではmergeと変数名の間に1:1やm:mを入れることが多い。
例えば下のようなデータがあった場合に
file_1 file_2
n a a b
1 0 4 1
2 4 5 3
3 7 7 2
4 5 0 1
5 1 3 7
aという変数をキーとして2つのファイルを結合させると
merge a using file_2 //merge 1:1 a using file_2 でも可能
結果
file_1
n a b _merge
1 0 1 3
2 4 1 3
3 7 2 3
4 5 3 3
5 1 1
3 7 2
となる。
このように"a"をキーとして2つのファイルを1つにまとめることができる。
そして、新しく作成された_mergeという変数であるが
1ならマスターデータにのみ数字があってマージできなかった
2なら引っ張ってきたデータにしかなかった
3ならマージが成功したという意味である。
基本的に3であればうまくいっているという意味である。
ここからは、有用なオプションを紹介する。
まず、keepusing(変数リスト)で引っ張ってくるほうのデータから必要なもののみを選択できる。これを書かないとすべての変数が加わるので変数の数が多くなり非常にややこしくなる。
続いて、updateオプションを紹介する。
これは、マスターデータ(現在使っているデータ)の欠損値を引っ張ってくる方(usingの後ろに書いているファイル)のもので補完することができるオプションである。
他にも、mergeした結果を表す変数"_merge"の名前を変更するgenerate()オプションやそもそも"_merge"を作成しないnogenerateオプションなどがあるが個人的には"_merge"が慣れているので使わない。