data have;
input id date $ Var1 Var2 Var3;
cards;
1 7/4/17 1 . .
1 7/4/17 . 0 .
1 7/4/17 . . 1
1 5/4/17 0 . .
1 5/4/17 . 0 .
1 5/4/17 . . 0
2 6/4/17 . 1 .
2 6/4/17 0 . .
2 6/4/17 . . 1
3 7/14/17 0 . .
3 7/14/17 . 0 .
3 7/14/17 . . 1
;
run;
proc sort data = have;
by id date;
run;
data want;
set have;
by id date;
retain var1_ var2_ var3_;
if first.date then
do;
var1_ = .;
var2_ = .;
var3_ = .;
end;
if not missing (var1) then
var1_ = var1;
if not missing (var2) then
var2_ = var2;
if not missing (var3) then
var3_ = var3;
var1 = var1_;
var2 = var2_;
var3 = var3_;
if last.date then
output;
drop var1_ var2_ var3_;
run;
... View more