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
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.