ビジネス・インテリジェンス[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
[キーワード] DATA, MISSING, RETAIN

[質問]

任意の変数が欠損値のとき、欠損値の代わりに前のオブザベーションの値(非欠損値)をセットする方法はありますか。

  NO   VALUE
1001     100
.         50
1002      50
.        100
.        150
1003      50
.        200
1004      50
  NO   VALUE
1001     100
1001      50
1002      50
1002     100
1002     150
1003      50
1003     200
1004      50

[回答]

RETAINステートメントを使用します。次のプログラム例を参考にしてください。例では、任意の変数が欠損値ではないとき、その値を別の変数に保存します。欠損値が現れた場合は、保存しておいた値を欠損値の代わりにセットします。

例)

                  /* サンプルデータセット */
DATA sample;
   INPUT NO VALUE;          
CARDS;
1001 100
.     50
1002  50
.    100
.    150
1003  50
.    200
1004  50
;
RUN;

DATA sample(drop=sc_no);
   RETAIN SV_NO;           /* 値を保持 */
   SET SAMPLE;          
   IF NO = . THEN          /* 欠損値のとき */
      NO = SV_NO;
   ELSE
      SV_NO = NO;
RUN;
                   /* 値の確認 */ 
PROC PRINT DATA=SAMPLE;
RUN;



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