DATA Step, Macro, Functions and more

How to fill the gaps between observations

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 7
Accepted Solution

How to fill the gaps between observations

[ Edited ]

Hi all,

 

I am after some assistance.

 

I have a dataset that I want to fill the white gaps within the data set.

 

Variables - Date, Index, Month, Year, Name, ID, ID_Name, Value.

 

Date is just month/year where Month & Year are just functions of the Date Variable.

 

Index represents a block range of dates that is repeated every time the index is incremented. I require the white space within the blocks of dates to be repeated. The only issue is if there is a change in value within the block range of dates.

 

Any help would be greatly appreciated.

 

For example...

 

 

Have:       
DateIndexMonthYearNameIDID_NameValue
Jan-03112003 . .
Feb-03122003 . .
Mar-03132003 . .
Apr-03142003John45Teacher101
May-03152003 . .
       
Jan-03212003 . .
Feb-03222003Bill98Engineer76
Mar-03232003Bill98Engineer80
Apr-03242003 . .
        
        
Want:       
DateIndexMonthYearNameIDID_NameValue
Jan-03112003John45Teacher101
Feb-03122003John45Teacher101
Mar-03132003John45Teacher101
Apr-03142003John45Teacher101
May-03152003John45Teacher101
       
Jan-03212003Bill98Engineer76
Feb-03222003Bill98Engineer76
Mar-03232003Bill98Engineer80
Apr-03242003Bill98Engineer80

 

 


Accepted Solutions
Solution
3 weeks ago
Occasional Contributor
Posts: 7

Re: How to fill the gaps between observations

All Solved.

 

Just modified to capture the obs above.

 

data want;
do until(not missing(value) or last.index);
  set have;
  by index; 
end;
temp=value;
do until(not missing(value) or last.index);
  set have;
  by index;
  _value=temp;output;
end;
drop temp value;
run;

View solution in original post


All Replies
Occasional Contributor
Posts: 7

Re: How to fill the gaps between observations

 

I can fill some of the gaps. But need to fill in the previous too.

 

data want; update have (obs=0) have; by index; output; run;

Solution
3 weeks ago
Occasional Contributor
Posts: 7

Re: How to fill the gaps between observations

All Solved.

 

Just modified to capture the obs above.

 

data want;
do until(not missing(value) or last.index);
  set have;
  by index; 
end;
temp=value;
do until(not missing(value) or last.index);
  set have;
  by index;
  _value=temp;output;
end;
drop temp value;
run;

☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 139 views
  • 0 likes
  • 1 in conversation