任意の変数の値が重複しているとき、連番を付加する
[OS] ALL
[リリース] ALL
[キーワード] Base, DATA, duplicate value, numbering, FIRST.variable, LAST.variable
[質問]任意の変数の値が重複しているとき、下記のように連番を付加するには、どのようにすればいいですか。 たとえば、下記のような変数IDがあるとき、変数NOを追加したいと考えています。
ID NO
A001 1
A001 2
A002 1
A002 2
A002 3
A003 1
A004 1
A004 2
[回答]
BYステートメントとFIRST.変数を使用して、連番を付加することができます。 プログラム例
DATA sample;
INPUT id $;
CARDS;
A001
A001
A002
A002
A002
A003
A004
A004
;
RUN;
DATA sample;
SET sample;
BY id;
RETAIN no; /* noの値を保持 */
IF FIRST.id THEN no = 0; /* 値が変わったら、noに0をセット */
no + 1; /* noに1を加算 */
RUN;
|
|