オブザベーション番号の出力方法

[OS] ALL
[リリース] 9.4
[キーワード] CUROBS

[質問]

DATAステップのSETステートメントとWHEREステートメントを使用し、データセットから条件抽出を行います。このとき、条件にマッチして読み込まれたオブザベーションが、データセットの何オブザベーション目だったかを確認できる簡単な方法はありますか。

[回答]

SAS 9.4よりSETステートメントに追加された新しいオプションCUROBS=を使用すると、読み込まれたオブザベーションの番号を指定の変数に出力することができます。

サンプルプログラムを以下に示します。

DATA WOMEN;
  SET sashelp.class CUROBS=cobs;
  WHERE sex = '女子';
  orig_obs = cobs;
RUN;

PROC PRINT DATA=WOMEN;
RUN;

以下のような結果となります。

Obs Name Sex Age Height Weight orig_obs
1 Alice F 13 56.5 84.0 2
2 Barbara F 13 65.3 98.0 3
3 Carol F 14 62.8 102.5 4
4 Jane F 12 59.8 84.5 7
5 Janet F 15 62.5 112.5 8
6 Joyce F 11 51.3 50.5 11
7 Judy F 14 64.3 90.0 12
8 Louise F 12 56.3 77.0 13
9 Mary F 15 66.5 112.0 14