前のページ|次のページ

ENDOBS=データセットオプション

ユーザー定義のオブザベーション処理範囲における最後のオブザベーション番号を指定します。

該当要素: DATAステップおよびPROCステップ
デフォルト: データセット内の最後のオブザベーション
制限事項: ENDOBS=は入力データセットにのみ使用
OBS=システムまたはデータセットオプション、あるいはFIRSTOBS=システムおよびデータセットオプションと一緒には使用不可
操作: ENDOBS= LIBNAMEステートメントオプション
STARTOBS= LIBNAMEステートメントオプション
STARTOBS=データセットオプション
エンジン: SPD Engineのみ

構文

ENDOBS=n

必須引数

n

終了オブザベーションの番号。

詳細

オブザベーション範囲の指定

デフォルトでは、SPD Engineで、STARTOBS=オプションまたはENDOBS=オプションを使用してオブザベーションの範囲を指定しない限り、データセット全体のすべてのオブザベーションが処理されます。STARTOBS=オプションをENDOBS=オプションなしで使用した場合、ENDOBS=の暗黙値はデータセットの終わりになります。両方のオプションを一緒に使用する場合、ENDOBS=値をSTARTOBS=値よりも大きくする必要があります。
SPD EngineにおけるENDOBS=データセットオプションは、デフォルトのBase SAS EngineにおけるOBS=データセットオプションと同様に機能します。唯一の違いは、ENDOBS=をWHERE式で使用した場合の動作です。

WHERE式でのENDOBS=の使用

ENDOBS=をWHERE式で使用する場合、ENDOBS=値は、返されるオブザベーションの数ではなく、最後に処理するオブザベーションを表します。次の例でその違いを示します。
注: OBS=システムオプションおよびOBS=データセットオプションは、STARTOBS=もしくはENDOBS=データセットまたはLIBNAMEオプションと一緒には使用できません。

比較

ENDOBS=データセットオプションで、ENDOBS= LIBNAMEステートメントオプションが上書きされます。

例1: ENDOBS=データセットオプションの使用

SPD EngineでENDOBS=5オプションを指定してデータセットを作成および処理します。オブザベーション番号5で終わるデータセットにWHERE式が適用されます。PRINTプロシジャでは4つのオブザベーションが印刷されます。これはWHERE式に適合するオブザベーションです。
libname growth spde 'SAS-library';
data growth.teens;
   input Name $ Sex $ Age Height Weight;
   list;
datalines;
Alfred M 14 69.0 112.5
Carol F 14 62.8 102.5
James M 13 57.3 83.0
Janet F 15 62.5 112.5
Judy F 14 64.3 90.0
Philip M 16 72.0 150.0
Zeke M 14 71.1 105.0
Alice F 14 65.1 91.0
William M 15 66.5 112.0
;
proc print data=growth.teens (endobs=5);
   where age >13;
   title 'WHERE age > 13 using SPD Engine';
run;
ENDOBS=
印刷された4つのオブザベーション

例2: SPD EngineでのOBS=

OBS=5を指定して同じデータセットを処理します。PROC PRINTでは5つのオブザベーションが印刷されます。これはWHERE式に適合するすべてのオブザベーションで、5番目の適合オブザベーションで終了します。
libname growth spde 'SAS-library';
data growth.teens;
   input Name $ Sex $ Age Height Weight;
   list;
datalines;
Alfred M 14 69.0 112.5
Carol F 14 62.8 102.5
James M 13 57.3 83.0
Janet F 15 62.5 112.5
Judy F 14 64.3 90.0
Philip M 16 72.0 150.0
Zeke M 14 71.1 105.1
Alice F 14 65.1 91.0
William M 15 66.5 112.0
;
proc print data=growth.teens (obs=5);
   where age >13;
   title 'WHERE age > 13 using V9';
run;
OBS=
印刷された5つのオブザベーション
前のページ|次のページ|ページの先頭へ