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

levelsof コマンド

 Stataの levelsof コマンドは、指定した変数に含まれる一意の(重複のない)値をソートしてリスト表示するためのコマンドです。

1. 基本的な機能

  • 一意の値の抽出 : 変数の中にどのような値(レベル)が存在するかを確認できます。
  • マクロへの格納 : 最も一般的な用途は、local(macname) オプションを使用して、抽出した値のリストをローカルマクロに保存することです。 これにより、その後の処理でリストを再利用できます。

2. プログラミングでの活用(ループ処理)

 このコマンドは、特定の変数の値ごとに同じ処理を繰り返したい場合に、foreach ループと組み合わせて頻繁に使用されます。

webuse auto
levelsof foreign, local(levels)
foreach l of local levels {
    display "-> foreign = `l'"
    summarize price if foreign == `l'
}

3. 主なオプション

  • local(macname) : 結果をローカルマクロ macname に代入します。
  • missing : デフォルトでは除外される欠損値(.)を一意の値として含めます。
  • separate(separator) : リストの区切り文字を指定します(デフォルトはスペースですが、カンマなどに変更可能です)。
  • clean : 文字列変数の場合、各値を囲む複合ダブルクォーテーションを取り除いて表示します。
  • hexadecimal : 数値変数の値を16進数形式で取得します。これは、非整数や非常に大きな整数を扱う際、 浮動小数点の精度の問題で if 文の判定(==)が失敗するのを防ぎ、厳密な一致を保証するために重要です。

4. その他の機能

 行列への保存 : matcell(matname) で各値の頻度を、matrow(matname) で一意の値そのものを、 それぞれ行列に保存することも可能です。