how to map to the previous variable value??

Occasional Contributor
Posts: 15

how to map to the previous variable value??

there is a input variable called X. need to derive variable called 'Y'.. the scenario is wherever there is 999 value there it has to add 0.1 to the previous x value.. if more than one 999 is there then the order should be 3.1, 3.2,3.3

X        Y

1        1
2        2
3        3
4        4
999    4.1
1        1
2        2
3        3
999    3.1
999    3.2

SAAAS
Super User
Posts: 23,667

Re: how to map to the previous variable value??

Use the lag function.

``````X_lag = lag(X);
Y=ifn(X=999, x_lag+0.1, X);``````

This doesn't deal with consecutive 999 so you'll need to figure out the logic for that.

Super User
Posts: 10,766

Re: how to map to the previous variable value??

``````data have;
input X ;
cards;
1
2
3
4
999
1
2
3
999
999
;
run;

data want;
set have;
retain Y;
if X ne 999 then Y=X;
else Y=Y+0.1;
run;
``````
Super User
Posts: 10,766

Re: how to map to the previous variable value??

Or more simple :

``````data want;
set have;
if X ne 999 then Y=X;
else Y+0.1;
run;``````
Discussion stats
• 3 replies
• 238 views
• 5 likes
• 3 in conversation