I have been trying to get this input:
ID VAR_1 VAR_2 VAR_3
001 1 3
001 2
002 2
002 1
002 2 3
To this output:
ID VAR_1 VAR_2 VAR_3
001 1 2 3
002 1 2 3
Here is my test dataset. I used RETAIN to get them all line up at the end, then take the LAST.ID. However the retain does not seem to work...
data a;
input id $ 1-3 var_1 $ 4-4 var_2 $ 5-5 var_3 $ 6-6;
cards;
0011 3
001 2
002 23
0021
002 3
;
Any ideas. Thanks!
-K
Use the UPDATE statement. Only non-missing values will cause changes to previous value.
data have ;
input ID VAR_1 VAR_2 VAR_3 ;
cards;
001 1 . 3
001 . 2 .
002 . 2 .
002 1 . .
002 . 2 3
run;
data want ;
update have (obs=0) have;
by id;
run;
data _null_;
set want ;
put (_all_) (=);
run;
Use the UPDATE statement. Only non-missing values will cause changes to previous value.
data have ;
input ID VAR_1 VAR_2 VAR_3 ;
cards;
001 1 . 3
001 . 2 .
002 . 2 .
002 1 . .
002 . 2 3
run;
data want ;
update have (obs=0) have;
by id;
run;
data _null_;
set want ;
put (_all_) (=);
run;
Thanks Tom, that was quick
⏰
Today is the last day to save with the early bird rate! Register today for just $695 - $100 off the standard rate.
Plus, pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.