🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Fluorite | Level 6

## Converting a Sequence to Monotonically Increasing Sequence

Hi, I have a variable X with the sequence of number such as: 3, 4, 6, 5, 4, 7, 9, 7, 8, 9, 10. I need to create a new variable Y so that Yi=max(Xi, Yi-1). It would become a sequence like: 3, 4, 6, 6, 6, 7, 9, 9, 9, 9, 10. How can I do the programming to get this new variable? Thank you so much for your suggestion.

1 ACCEPTED SOLUTION

Accepted Solutions
Meteorite | Level 14

## Re: Converting a Sequence to Monotonically Increasing Sequence

I am thinking about something like this, using the RETAIN function:

``````data want;
set have;
retain y;
if x >= y then y=x;
run;
``````
4 REPLIES 4
Jade | Level 19

## Re: Converting a Sequence to Monotonically Increasing Sequence

Hi @hansmuller,

Apply the RETAIN statement to y:

``````data have;
infile cards dsd;
input x @@;
cards;
3, 4, 6, 5, 4, 7, 9, 7, 8, 9, 10
;

data want;
set have;
y=max(x,y);
retain y;
run;``````
Meteorite | Level 14

## Re: Converting a Sequence to Monotonically Increasing Sequence

I am thinking about something like this, using the RETAIN function:

``````data want;
set have;
retain y;
if x >= y then y=x;
run;
``````
Fluorite | Level 6

## Re: Converting a Sequence to Monotonically Increasing Sequence

Thank you so much!
Amethyst | Level 16

## Re: Converting a Sequence to Monotonically Increasing Sequence

Alternatively with ifn and retain

``````data want;
set have;
retain new;
new=ifn(x<new,new,x);
run;
``````
Thanks,
Jag
Discussion stats
• 4 replies
• 758 views
• 3 likes
• 4 in conversation