Sorry for the weird title. A data supplier is sending us data that looks as follows:
Date depart dest Count Direction
20180401 MBPV LIPE 1 1
LSGG 1 1
LSZH 1 1
MDCY EDDF 4 2
EIDW 1 1
MDLR EDDF 1 1
EDDK 1 1
and so on...we need to get it into SAS so that the blanks you see above are filled in until a new depart occurs, with the date populated the whole way down. It would end up creating:
Date depart dest Count Direction
20180401 MBPV LIPE 1 1
20180401 MBPV LSGG 1 1
20180401 MBPV LSZH 1 1
20180401 MDCY EDDF 4 2
20180401 MDCY EIDW 1 1
20180401 MDLR EDDF 1 1
20180401 MDLR EDDK 1 1
Is this possible in a SAS datastep? If you want to download the original 192kb SAS dataset you can get it:
https://drive.google.com/file/d/1ugq_Oh6vW1spPnRaTAx3ahFdeR5E0yMX/view?usp=sharing
thanks
-Bill
data want;
set have;
retain _d __d;
if not missing(depart) then _d=depart;
else depart=_d;
if not missing(date) then __d=date;
else date=__d;
drop _:;
run;
data want;
set have;
retain _d __d;
if not missing(depart) then _d=depart;
else depart=_d;
if not missing(date) then __d=date;
else date=__d;
drop _:;
run;
perfect! Thanks!
data have;
input (Date depart dest Count Direction) ($);
id=1;
cards;
20180401 MBPV LIPE 1 1
. . LSGG 1 1
. . LSZH 1 1
. MDCY EDDF 4 2
. . EIDW 1 1
. MDLR EDDF 1 1
. . EDDK 1 1
;
run;
data want;
update have(obs=0) have;
by id;
output;
drop id;
run;
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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: