在第3次和第4次观察中,状态值为空,我需要第3次和第4次观察等于第二次观察。这需要通过id设置的数据进行。
data z;
input id $ d status $;
cards;
11111 01 a
11111 02 a
11111 03 .
11111 04 .
11111 05 p
11111 06 .
11111 07 .
11111 08 .
11111 09 a
11111 10 .
11111 11 .
11111 12 .
11111 13 .
11111 14 .
11111 15 .
11111 16 .
11112 01 p
11112 02 .
11112 03 .
11112 04 .
11112 05 p
11112 06 .
11112 07 .
11112 08 .
11112 09 .
11112 10 a
;
run;
答案 0 :(得分:2)
这个数据步骤应该可以解决问题。
data want;
set z;
by id;
length lastStatus $1;
retain lastStatus;
if first.id then lastStatus = status;
else lastStatus = coalescec(status,lastStatus);
drop status;
rename lastStatus = status;
run;