BookmarkSubscribeRSS Feed
pbraud
Calcite | Level 5

Hi, I am trying to calculate a varible in SAS which is dependant on the previously calculated varibles.  I thought this would be simple with the following code but it does not compute.

data test1;

set rate;

if id_perd = '1' then Dis_fact= 1/(1+((Swap_Spot_Rate)/12));

else if id_perd > '1' then Dis_fact = (1/(1+((Swap_Spot_Rate)/12)))*lag(Dis_fact);

run;

Is it possible to calculate a varible dependant on the previously calculated varible in sas?  All help would be appreciate.  Thanks! Patrick B.

4 REPLIES 4
data_null__
Jade | Level 19

You can probably just RETAIN DIS_FACT instead of LAGing, and just use DIS_FACT on the right instead of LAT(DIS_FACT);

pbraud
Calcite | Level 5

Thanks for the help!

Astounding
PROC Star

Patrick,

It should be as easy as 1 2 3.

First, make sure that RATE does not already contain a variable named DIS_FACT.

Second, get rid of the LAG function entirely.

Third, add this statement to the DATA step:

retain dis_fact;

That should do it.

pbraud
Calcite | Level 5

Thanks for the help!

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

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 4 replies
  • 1191 views
  • 2 likes
  • 3 in conversation