SASデータセットで特定条件のオブザベーションを処理する

[OS]ALL
[リリース] 5.18, 6.07, 6.08, 6.09, 6.10
[キーワード] base, procedure, data= ,option, where=, var=

[質問]

SASデータセットの特定の条件を満たしたオブザベーションを処理の対象とするにはどうすればよいでしょうか。

[回答]

WHERE=データセットオプションを使用します。このオプションを使用すると、 DATAステップやPROCステップ処理の前にWHERE条件式を満たすオブザベーションを選択することができます。

  DATA out_data; SET in_data(WHERE=(var=xx)); RUN;

上記の例では変数 var の値が xx のオブザベーションのみを選択します。
同様の機能にWHEREステートメントがあります。上記の例をWHEREステートメントで書き変えると次のようになります。

  DATA out_data; SET in_data; WHERE var=xx; RUN;

WHEREステートメントはすべての入力データセットに対して有効ですが、 WHERE=データセットオプションは指定したデータセットにのみ有効です。
複数の入力データセットに対してそれぞれ条件を指定する場合は、 WHERE=データセットオプションをそれぞれのデータセットに対して使用します。

  MERGE in_data1(WHERE=(var=xx)) in_data2(WHERE=(var=yy));

[参考]

  • 「SASランゲージ: リファレンス, Version 6, First Edition」(注文番号 10067)