Hi All,
I have this dataset:
Exposure Name
101 Sandra
101
101 Tiffany
101 Abel
101
101
I Want :
Expsoure Name
101 Sandra
101 Sandra
101 Tiffany
101 Abel
101 Abel
101 Abel
How can I carry forward character value to subsequent missing rows until it reaches a non-missing cell.
I tried using lag but it doesn't work if more than 1 row has missing value.
Thanks!
data want;
set have;
retain _name;
if name > ''
then _name = name;
else name = _name;
drop _name;
run;
data have;
infile datalines truncover;
input (Exposure Name) ($);
cards;
101 Sandra
101
101 Tiffany
101 Abel
101
101
;
data want;
set have;
by exposure;
length n $50;
retain n ;
if first.exposure then call missing(n);
if not missing(name) then n=name;
else name=n;
drop n;
run;
data want;
set have;
retain _name;
if name > ''
then _name = name;
else name = _name;
drop _name;
run;
data have;
infile datalines truncover;
input (Exposure Name) ($);
cards;
101 Sandra
101
101 Tiffany
101 Abel
101
101
;
data want;
update have(obs=0) have;
by exposure;
output;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.