Hi,
I need to convert a time variable currently in character toa numeric but the data is non standard format;
data have ;
input starttm 8.;
datalines;
13.48
9
10
9.3
8.56
11.10
.
1.2
run;
/*
Want the data to look:
13:48
09:00
10:00
09:30
08:56
11:10
.
01:20
*/
data want;
length srtm1 srtm3 srtm4_ srtm4 $5;
set have;
srtm1=put(starttm,time5.);/* Not working. All observatsion=0:00*/
*srtm2=put(starttm,hhmmss5.);* Works only for observations 2,3*/;
srtm3=put(starttm,tod5.);/* Not working. All observatsion=0:00*/
srtm4_=tranwrd(strip(put(starttm,best5.)),".",":");/* Not working. same as original*/
if starttm ^=. then do;
if index(srtm4_,":")=3 then srtm4= srtm4_;
else if index(srtm4_,":")=2 then srtm4= srtm4_||"0";
else if index(srtm4_,":")=20 then srtm4= srtm4_||":00";
end;
if index(srtm4_,":")>0 then srtm5= input(srtm4_,time5.); /* Not working dor observation 4,6*/
else srtm5= input(srtm4_,hhmmss5.);
format srtm5 time5.;
run;
Any suggestions as to how to get a format that works for each value?
Thanks.
... View more