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.
You can probably just RETAIN DIS_FACT instead of LAGing, and just use DIS_FACT on the right instead of LAT(DIS_FACT);
Thanks for the help!
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.
Thanks for the help!
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!
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.
Ready to level-up your skills? Choose your own adventure.