BookmarkSubscribeRSS Feed
Augusto
Obsidian | Level 7

i need to replicate the value of the previos line (_n_ - 1) to line (_n_), could anyone code it.

 

ex.

 

data have ;
input n field $;
cards ;
1 y12
2 .
3 .
4 b98
5 .
6 .
7 .
;
run ;

 

data want;

set have;

n field
1 y12
2 y12
3 h12
4 b98
5 b98
6 b98
7 b98

run;

 

please, consider that this table (have) cannot be ordered

 

Thanks

3 REPLIES 3
ndp
Quartz | Level 8 ndp
Quartz | Level 8

Simple retain statement would work.

data want;
	set have;
	retain field1;
	if not missing(field) then field1=field;
run;

 

 

dsbihill
Obsidian | Level 7


data want;
    set have;

    retain prevField;
    if field ne "" then prevField = field;
    if field = "" then field = prevField;

run;

Steelers_In_DC
Barite | Level 11

Here is a solution:

 

data have;
input n field$;
cards ;
1 y12
2 .
3 .
4 b98
5 .
6 .
7 .
;

data want;
set have;
retain field2;
if not missing(field) then field2 = field;
if missing(field) then field = field2;
drop field2;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1827 views
  • 0 likes
  • 4 in conversation