月一更新に落ち着いてきましたね。
次のオブザベーションの値を持ってくる方法にはいくつかあると思います。
元のデータと2オブザベーション目から読み込んだデータをマージしたりとか
hashで読みこんだりとかの方法が考えられます。
単純に次のレコードを持ってくるならsetステートメントのpointオプションを使う手もあります
グループ内での次のレコードを持ってくる、とかでしたらhashで読み込むのがよさげですが。
data hoge;
a = 1; b = 6.0 ; output;
a = 2; b = 3.0 ; output;
a = 3; b = 4.0 ; output;
a = 4; b = 2.0 ; output;
a = 5; b = 5.0 ; output;
a = 6; b = 1.0 ; output;
run;
data hoge2;
set hoge end = _last;
_vnext = _n_ + 1;
if _last = 0 then set hoge( keep = a rename = (a = next_a) ) point = _vnext;
else call missing(next_a); *-最終obsは次のレコードを持たない;
run;
これで変数aの次のオブザベーションの値を持った変数next_aが出来上がります。
今回は画像あげるテストも兼ねてたんですが大丈夫そうですね
0 件のコメント:
コメントを投稿