merge コマンド Stataの merge コマンドは、メモリ上のデータ(マスターデータ)とディスク上のデータ(ユージングデータ)を、1つ以上の共通のキー変数に基づいて水平方向に結合(変数を追加)するためのコマンドです。
結合の種類に応じて、以下の基本形式を使用します。
merge 1:1 varlist using filename [, options] merge m:1 varlist using filename [, options] merge 1:m varlist using filename [, options] merge m:m varlist using filename [, options] (非推奨)merge 1:1 _n using filename [, options] ここで varlist は共通のキー変数を指し、 filename は結合するデータファイル名を指します。
結果の制御やデータの取り扱いに関する多様なオプションがあります。
keepusing(varlist) : ユージングデータから特定の変数のみを取り込む場合に指定します。デフォルトでは全変数が取り込まれます。generate(newvar) : 結合結果を示す変数(デフォルトは _merge )の名前を任意に指定します。nogenerate : _merge 変数を作成しません。keep(results) : 結合後に残す観測値の種類を指定します(例: keep(match) で一致したデータのみを残す)。assert(results) : 特定の結合結果(例: 全て一致するなど)を前提とし、それ以外の場合にエラーを返します。update : マスターデータが欠損値の場合、ユージングデータの値で埋めます。replace : マスターデータに値があっても、ユージングデータの値で上書きします( update と併用が必要)。noreport : 実行結果の要約テーブルを表示しません。force : 文字列型と数値型の不一致があっても、エラーにせず処理を続行します(不一致分は欠損値になります)。_merge ) コマンド実行後、Stataは各観測値の由来を示す _merge 変数を自動的に作成します。
master only ) : マスターデータにのみ存在する観測行。using only ) : ユージングデータにのみ存在する観測行。match ) : 両方のデータに存在する観測行。