ライトストーン > Stata > コマンド早見表

merge コマンド

 Stataの merge コマンドは、メモリ上のデータ(マスターデータ)とディスク上のデータ(ユージングデータ)を、1つ以上の共通のキー変数に基づいて水平方向に結合(変数を追加)するためのコマンドです。

1. シンタクス(構文)

 結合の種類に応じて、以下の基本形式を使用します。

  • 1対1結合 : merge 1:1 varlist using filename [, options]
  • 多対1結合 : merge m:1 varlist using filename [, options]
  • 1対多結合 : merge 1:m varlist using filename [, options]
  • 多対多結合 : merge m:m varlist using filename [, options] (非推奨)
  • 逐次結合(行番号による結合) : merge 1:1 _n using filename [, options]

 ここで varlist は共通のキー変数を指し、 filename は結合するデータファイル名を指します。

2. 主なオプション

 結果の制御やデータの取り扱いに関する多様なオプションがあります。

  • keepusing(varlist) : ユージングデータから特定の変数のみを取り込む場合に指定します。デフォルトでは全変数が取り込まれます。
  • generate(newvar) : 結合結果を示す変数(デフォルトは _merge )の名前を任意に指定します。
  • nogenerate : _merge 変数を作成しません。
  • keep(results) : 結合後に残す観測値の種類を指定します(例: keep(match) で一致したデータのみを残す)。
  • assert(results) : 特定の結合結果(例: 全て一致するなど)を前提とし、それ以外の場合にエラーを返します。
  • update : マスターデータが欠損値の場合、ユージングデータの値で埋めます。
  • replace : マスターデータに値があっても、ユージングデータの値で上書きします( update と併用が必要)。
  • noreport : 実行結果の要約テーブルを表示しません。
  • force : 文字列型と数値型の不一致があっても、エラーにせず処理を続行します(不一致分は欠損値になります)。

3. 結合結果の確認 ( _merge )

 コマンド実行後、Stataは各観測値の由来を示す _merge 変数を自動的に作成します。

  • 1 ( master only ) : マスターデータにのみ存在する観測行。
  • 2 ( using only ) : ユージングデータにのみ存在する観測行。
  • 3 ( match ) : 両方のデータに存在する観測行。