3

次のデータがあるとしますが、基本的に、グループ内の残りの値(下の表)のaとbの最初の値をコピーします。

たとえば、グループ1では、a = 3の最初の値です。グループの2、4、1を3に置き換えます。変数bについても同じです。

元のデータ:

grp a   b
----------
1   3   2
1   2   1
1   4   2
1   1   3
2   2   4
2   1   1
2   2   2
2   3   1

更新されたデータ:

grp a   b
----------
1   3   2
1   3   2
1   3   2
1   3   2
2   2   4
2   2   4
2   2   4
2   2   4

前もって感謝します。

4

1 に答える 1

5

これを行うには、グループごとの処理とretainステートメントを使用できます。これを機能させるには、最初に入力データセットをグループ別にソートする必要があることに注意してください。

data output(keep=grp a b);
  retain firsta firstb;
  set input;
  by grp;
  if first.grp then do;
    firsta = a;
    firstb = b;
  end;
  else do;
    a = firsta;
    b = firstb;
  end;
run;
于 2012-03-07T16:51:52.497 に答える