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!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.