Hi,
Apologies in advance if the solution to this is ridiculously simple.
My use of SAS is in a very limited capacity. I manage to hodge-podge programs together from SAS code I can find on the internet.
I came across this wonderful solution from @Ksharp that shows how to shift missing values from the the right to left and it works beautifully. Unfortunately I need it to work for some character variables. Is there any easy change that can be made to the code below to accommodate?
Thank you for any help you can offer!
data ja;
infile cards firstobs=2;
input id:$3. age ja1-ja3;
cards;ID_ AGE Ja1 Ja2 Ja3
001 003 207 . 506
003 023 445 211 241
021 101 . 431 246
145 042 566 343 121;;;;
run;
data want;
set ja;
array j{*} ja1-ja3;
array x{3} _temporary_;
n=0;call missing(of x{*});
do i=1 to dim(j);
if not missing(j{i}) then do;
n+1;x{n}=j{i};
end;
end;
do i=1 to dim(j);
j{i}=x{i};
end;
drop i n;
run;
... View more