グループ内連番をふる機会はすごく多いと思うので、まとめてみました。
サンプルデータ
data DT1; input SUBJID$ V$; cards; 001 a 001 b 001 c 002 x 002 y ; |
求めたい結果 「SUBJID」毎に「V」の順番で連番をふる。 |
データステップで連番をふる
*** 方法1 **********; proc sort data=DT1; by SUBJID V; run; data OUT1; set DT1; by SUBJID V; if first.SUBJID then SEQ=0; SEQ+1; run; |
*** 方法2 **********; proc sort data=DT1; by SUBJID V; run; data OUT1; set DT1; by SUBJID V; SEQ+1-first.SUBJID*SEQ; run; |
・方法1が一般的なやり方だと思う。
・方法2は仕組みを理解すれば1行で書けるのでおススメ。
0 件のコメント:
コメントを投稿