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

local コマンド

 Stataの local コマンドは、ローカルマクロ(local macro)に文字列や計算結果を割り当てるためのコマンドです。

 マクロとは、ある名前(マクロ名)に別の文字列(マクロの内容)を対応させたもので、プログラミングにおける「変数」のような役割を果たします。

1. 主な特徴とスコープ(有効範囲)

  • プライベート(秘密)属性 : ローカルマクロは、それを定義したdoファイルやプログラム内でのみ有効です。
  • 一時的な存在 : 定義したプログラムやdoファイルが終了すると、その内容は自動的に消去されます。
  • 独立性 : 異なるプログラムで同じ名前のローカルマクロを使っても、それらは互いに干渉しません。

2. 基本的な構文と定義方法

  local コマンドには、用途に応じていくつかの書き方があります。

  • 文字列の代入 : local 名前 "文字列"
    例: local shortcut "myvar thisvar" とすると、名前 shortcut に文字列が保存されます。
  • 式の評価と代入 : local 名前 = 式
    例: local two = 2+2 とすると、式が計算され、結果の 4 が保存されます。
  • マクロ関数の利用 : local 名前 : マクロ関数
    例: local lbl : variable label myvar とすると、変数ラベルを取得して保存できます。
  • インクリメント(加算) : local ++名前
    例: local ++i と書くことで、既存の数値に1を足すことができます。

3. マクロの呼び出し(置換)

 定義した内容を取り出すには、名前を左シングルクォートと右シングルクォートで囲みます。

  • 例: local shortcut "mpg price" と定義した後、 summarize `shortcut' と入力すると、 Stataは summarize mpg price と解釈して実行します。

4. 命名規則と制限

  • 名前の長さ : 最大 31文字 までです(グローバルマクロより1文字短いです)。
  • 使用可能な文字 : 文字、数字、アンダースコア( _ )が使えます。

5. 関連機能

  • 一時オブジェクト : tempvar (一時変数名)、 tempname (一時スカラー/行列名)、 tempfile (一時ファイル名)などは、内部的に「Stataが自動生成したユニークな名前」を格納するローカルマクロとして機能しています。
  • macval() 関数 : マクロを展開する際、その中に含まれる別のマクロを二重に展開させたくない場合に使用します。