DATA Step, Macro, Functions and more

Carry forward character variable value

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 18
Accepted Solution

Carry forward character variable value

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!


Accepted Solutions
Solution
‎05-22-2018 12:40 PM
Super User
Posts: 10,600

Re: Carry forward character variable value

Posted in reply to vpgodbole
data want;
set have;
retain _name;
if name > ''
then _name = name;
else name = _name;
drop _name;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code

View solution in original post


All Replies
Super User
Posts: 2,068

Re: Carry forward character variable value

[ Edited ]
Posted in reply to vpgodbole
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;
Solution
‎05-22-2018 12:40 PM
Super User
Posts: 10,600

Re: Carry forward character variable value

Posted in reply to vpgodbole
data want;
set have;
retain _name;
if name > ''
then _name = name;
else name = _name;
drop _name;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Super User
Posts: 2,068

Re: Carry forward character variable value

[ Edited ]
Posted in reply to vpgodbole
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;
 
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 102 views
  • 0 likes
  • 3 in conversation