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
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.