自動変数

Last-modified: 2008-06-19 (木) 01:53:14

DATAステップやPROCステップでは,その処理の内容によって,自動的に作成され,値を参照したり設定したりできる変数があり,自動変数と呼びます.
自動変数は,_varname_というアンダーバーで囲まれた名前で定義されます.ユーザも同じような名前規則で変数を定義できますが,それは自動変数ではありません.また,自動変数と同じ名前を別の意図で使った場合,エラーになるか,エラーにならなくても予期せぬ結果になる危険がありますので,避けてください.
特殊変数は,それが有効な時点において,どれも参照することは可能ですが,値を設定したり,SASデータセットに記録したりできるかは変数によって異なります.

 

主な自動変数

  • _N_
    DATAステップにおいて,DATAステップの処理が何回目かを表します.
  • _ERROR_
    DATAステップにおいて,エラーが発生した(1)か否(0)かを保持します.ERRORステートメントで,ユーザが1に設定することもできます.
  • _INFILE_
    DATAステップにおいて,INPUTステートメントで読み込まれたレコードのバッファ内容が保持されます.
  • _FILE_
    DATAステップにおいて,PUTステートメントで書き出されたレコードのバッファ内容が保持されます.
  • _TYPE_
    SUMMARYプロシジャ,MEANSプロシジャなどで,出力SASデータセットの中でカテゴリの組み合わせを保持します.
  • _FREQ_
    SUMMARYプロシジャ,MEANSプロシジャなどで,出力SASデータセットの中でカテゴリの度数を保持します.

ほかに自動的につくられる変数のようなもの

  • first.variable
    DATAステップにおいて,BYステートメントの変数の値が新たな値(1)かその前のものと同じ(0)かを表します.
  • last.variable
    DATAステップにおいて,BYステートメントの変数の値が最後の値(1)かその次のものと同じ(0)かを表します.
  • ALL
    TABULATEプロシジャのTABLEステートメントにて,カテゴリ計を表すのに用いられます.