Help using Base SAS procedures

replicate value (easy question)

Reply
Frequent Contributor
Posts: 80

replicate value (easy question)

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

Contributor ndp
Contributor
Posts: 61

Re: replicate value (easy question)

Simple retain statement would work.

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

 

 

Contributor
Posts: 53

Re: replicate value (easy question)


data want;
    set have;

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

run;

Valued Guide
Posts: 858

Re: replicate value (easy question)

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;

Ask a Question
Discussion stats
  • 3 replies
  • 288 views
  • 0 likes
  • 4 in conversation