EXPANDプロシジャを利用した前のオブザベーションの欠損値ではない値のセット方法

[OS] ALL
[リリース] ALL
[キーワード] missing value, interpolation, EXPAND, METHOD=STEP

[質問]

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

  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

[回答]

上記の作業をDATAステップで実現する方法は、下記リンクでご紹介しています。

上記のDATAステップによる方法以外に、ここではSAS/ETSのEXPANDプロシジャを使用して実現するプログラムをご紹介します。

次のプログラムは、データセットsampleを使用して、欠損値を置き換えたデータセットoutを作成しています。
METHOD=STEPの指定によって、直近の非欠損値をもって欠損値を置き換えます。

例:EXPANDプロシジャによる欠損値補完


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

                                             /* EXPANDプロシジャ */
  PROC EXPAND DATA=sample OUT=out(DROP=time);
    CONVERT no / METHOD=STEP;
  RUN;