2017-11-29 18 views
1

2つの列の値に基づいてSASデータセットに行番号列を追加したいとします。行番号列を2列で作成するSAS

Type_1とType_2の列は私が所有しており、行番号は必要なものです。

Type_1 Type_2 Row Number 
A  1  1 
A  1  2 
A  2  1 
A  2  2 
B  1  1 
B  2  1 
B  2  2 
B  3  1 
C  1  1 
C  1  2 
C  2  1 
C  3  1 
C  4  1 
C  4  2 

私は1つの列の値で行をカウントするには、このコードを持っている:

data work.want; 
set work.have; 
rownumber + 1; 
by type_1 notsorted; 
if first.type_1 then rownumber=1; 
run; 

をしかし、私は複数の列基準によってグループにできることにこれを拡張する方法がわかりません。私はちょうどtype_1type_2を連結することができ、上記のコードがうまくいくことを知っていますが、私はヘルパー列を作成せずにそれを行うことができるようにしたいと思います。それが機能するためのデータステップを変更する方法はありますか?あるいは、これを実現できるかどうかわからない別のSAS機能がありますか?

答えて

2

TYPE_1またはTYPE_2のいずれかの変更でリセットする場合は、リスト内の最後の変数を使用します。以前の変数の変更によって、FIRST変数の変更がトリガーされます。

data work.want; 
    set work.have; 
    by type_1 type_2 notsorted; 
    rownumber + 1; 
    if first.type_2 then rownumber=1; 
run; 
関連する問題