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ステートメントにて,カテゴリ計を表すのに用いられます.