前のページ|次のページ

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

BY変数に対する同一値があるデータセットオブザベーションの出力順序がデータセット順序になることを保証するかどうかを指定します。

該当要素: DATAステップおよびPROCステップ
使用要素: BYSORT=YESデータセットオプション
デフォルト: NO
エンジン: SPD Engineのみ

構文

BYNOEQUALS=YES | NO

必須引数

YES

BY変数に対する同一値があるデータセットオブザベーションの出力順序がデータセット順序になることを保証しません。

NO

BY変数に対する同一値があるデータセットオブザベーションの出力順序がデータセット順序になることを保証します。

詳細

BYステートメントに対して同一値があるオブザベーションのグループが出力される場合、その出力でのオブザベーションの順序はデータセット順序と同じになります。これは、デフォルトがBYNOEQUALS=NOであるためです。YESを指定すると、処理時間は短縮されますが、オブザベーションがデータセット順序で出力される保証はありません。
BYNOEQUALS=オプションはBYSORT=NOの場合は無効になるので、データセットまたはLIBNAMEオプションBYSORT=はYES (デフォルト)にする必要があります。
次の表は、SPD Engineでどのような場合に出力の物理的な順序が保持されるかを示しています。
SPD Engineでの物理的な順序の保持
条件:
データセット順序保持の有無
BYが存在する場合
あり(デフォルトでBYNOEQUALS=NOおよびBYSORT=YES)
BYが存在し、BYNOEQUALS=YESの場合
NO
BYが存在し、BYSORT=NOの場合
あり(自動並べ替えが発生しないため)
BYもWHEREも存在しない場合
YES
WHEREが存在する場合
NO

例1: BYNOEQUALS=YES

次の例では、BYNOEQUALS=YESのため、キー変数に同一のBY値があるオブザベーションが予測不能な順序で出力されます。
title 'With BYNOEQUALS=YES';
proc print data=labs.performance(bynoequals=yes) noobs;
   by score;
run;
出力は次のとおりです。
BYNOEQUALS=YES
BYNOEQUALS=YESオプション

例2: BYNOEQUALS=NO

次の例は、BYNOEQUALS=NOの出力を示しています。
title 'With BYNOEQUALS=NO;
proc print data=labs.performance(bynoequals=no) noobs;
   by score;
run;
出力は次のとおりです。
BYNOEQUALS=NO
BYSORTEQUALS=NOオプション
前のページ|次のページ|ページの先頭へ