levelsof コマンド Stataの levelsof コマンドは、指定した変数に含まれる一意の(重複のない)値をソートしてリスト表示するためのコマンドです。
local(macname) オプションを使用して、抽出した値のリストをローカルマクロに保存することです。
これにより、その後の処理でリストを再利用できます。 このコマンドは、特定の変数の値ごとに同じ処理を繰り返したい場合に、foreach ループと組み合わせて頻繁に使用されます。
webuse auto
levelsof foreign, local(levels)
foreach l of local levels {
display "-> foreign = `l'"
summarize price if foreign == `l'
}
local(macname) : 結果をローカルマクロ macname に代入します。missing : デフォルトでは除外される欠損値(.)を一意の値として含めます。separate(separator) : リストの区切り文字を指定します(デフォルトはスペースですが、カンマなどに変更可能です)。clean : 文字列変数の場合、各値を囲む複合ダブルクォーテーションを取り除いて表示します。hexadecimal : 数値変数の値を16進数形式で取得します。これは、非整数や非常に大きな整数を扱う際、
浮動小数点の精度の問題で if 文の判定(==)が失敗するのを防ぎ、厳密な一致を保証するために重要です。 行列への保存 : matcell(matname) で各値の頻度を、matrow(matname) で一意の値そのものを、
それぞれ行列に保存することも可能です。