ビジネス・インテリジェンス[BI] のリーディング・カンパニー | SAS Japan SAS Japan
「THE POWER TO KNOW(知る力)」を提供するビジネス・インテリジェンス[BI]のリーディング・カンパニー | SAS Japan  トレーニング マニュアル ユーザー事例 パートナー ユーザー会 求人情報 資料請求・ダウンロード
Home News Products & Solutions Events & Seminer Customer Support Company www.sas.com
 

任意の変数の値が重複しているとき、連番を付加する

[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.変数を使用して、連番を付加することができます。
BY変数の値が同じ間は連番の変数に1を加えて、値が変わったら0をセットします。

プログラム例


  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;

The Power to Know
   Contact Us     Terms of Use & Legal Information     Privacy Statement     個人情報の取り扱いについて   Copyright © 2008 SAS Institute Inc. All Rights Reserved