I have a dataset that contains multiple rows per account. The number of rows = the number of months since an account has been open, with the first row being zero.
The table shows how the balance has changed each row (month). I would like to calculation what the expected balance change should have been had the customer kept to their agreed schedule of payments.
For the first row (where AgeInMonths = 0), the ExpectedBalance should always be equal to the InitialLoanAmount.
For subsequent rows, I need to work out what the ExpectedBalance was for the row before and apply an Interest & Repayment calculation to that value to come up with that months ExpectedBalance.
I need to continue doing this until i get to a new AccountNumber where I should start again.
Does anyone know how I would do this?
Thanks
Jamie
Making some reasonable guesses about what your variable names are and what formulas should be applied:
data want;
set have;
by AccountNumber;
retain Expected_Balance;
if first.AccountNumber then Expected_Balance = InitialLoanAmount;
else do;
Expected_Change = Expected_Balance * (1 + Interest) - Repayment;
Expected_Balance = Expected_Balance + Expected_Change;
end;
run;
This program is obviously untested, and assumes that your data set is sorted in order by AccountNumber AgeinMonths.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.