前のページ|次のページ

FETCHOBS関数

SASデータセットから指定したオブザベーションをデータセットデータベクトル(DDV)に読み込みます。

カテゴリ: SASファイルI/O

構文

必須引数

data-set-id

OPEN関数によって返されたデータセット識別子を指定する数値変数です。

observation-number

読み込むオブザベーションの番号を指定する数値定数、変数または式です。FETCHOBSは、ABSオプションを指定しないかぎり、オブザベーション値を相対的なオブザベーション番号として扱います。削除対象としてマークしたオブザベーションはスキップされるため、相対的なオブザベーション番号はディスク上の物理的なオブザベーション番号とは一致しない場合があります。WHERE句がアクティブな場合、WHERE条件を満たすオブザベーションのみが数えられます。

デフォルト FETCHOBSは削除されたオブザベーションをスキップします。

オプション引数

options

空白で区切って1つ以上のオプションを指定する文字定数、変数または式です。

ABS observation-numberの値が絶対値であることを指定します。つまり、削除対象のオブザベーションも数えられます。
NOSET SETルーチンが呼び出された場合でも、SASデータセットの変数値がDATAステップ変数またはマクロ変数に自動的に渡されないようにします。

詳細

FETCHOBSは操作が成功した場合は0、失敗した場合は≠0、データセットの終わりに達した場合は-1を返します。非ゼロのリターンコードに関連付けられたエラーメッセージを取得するには、SYSMSG関数を使用します。SETルーチンを以前に呼び出したことがある場合、データセット変数の値がDDVから対応するDATAステップ変数またはマクロ変数に自動的に渡されます。この動作を一時的に無効にするには、NOSETオプションを使用します。
observation-numberが1未満の場合、エラー条件が返されます。observation-numberが、SASデータセット内のオブザベーション数より大きい場合、ファイルの終端(EOF)条件が返されます。

この例では、SASデータセットMYDATAから10番目のオブザベーションをフェッチします。エラーが発生した場合、SYSMSG関数はエラーメッセージを取得してSASログに書き込みます。マクロステートメントでは、文字列を引用符で囲む必要はありません。
%let rc = %sysfunc(fetchobs(&mydataid,10));
%if &rc = −1 %then
   %put End of data set has been reached.;
%if &rc > 0 %then %put %sysfunc(sysmsg());

関連項目:

CALLルーチン:
前のページ|次のページ|ページの先頭へ