Dear All,
Kindly provide the Solution for the following.
I am trying since Moring but not able to Make It.
data EMI_Form;
P=100000;
R=0.12;
do N=1 to 12;
EMI=(P*R*(1+R)**N)/(1+R)**(N-1);
output;
end;
run;
but I am Getting this output.
P
|
R
|
N
|
EMI
|
---|
1 | 100000 | 0.12 | 1 | 13440 |
2 | 100000 | 0.12 | 2 | 13440 |
3 | 100000 | 0.12 | 3 | 13440 |
4 | 100000 | 0.12 | 4 | 13440 |
5 | 100000 | 0.12 | 5 | 13440 |
6 | 100000 | 0.12 | 6 | 13440 |
7 | 100000 | 0.12 | 7 | 13440 |
8 | 100000 | 0.12 | 8 | 13440 |
9 | 100000 | 0.12 | 9 | 13440 |
10 | 100000 | 0.12 | 10 | 13440 |
11 | 100000 | 0.12 | 11 | 13440 |
12 | 100000 | 0.12 | 12 | 13440 |
Kindly Suggest me how to make the formula.
thanks a lot
Here's a workup for a full payment plan, includes the payment amount, interest portion, principal portion, balance at each time period. Assumes payment at end of period.
data emi_form;
P=100000;
R=0.12;
N=12;
Years=1;
Balance=P;
ERate=R/N;
NPER=N*YEARS;
DO i=1 to NPER;
PMT= (ERATE + ERATE/(((1+ERATE)**NPER) -1))*P;
BALANCE= BALANCe*(1+ERATE) - PMT;
INTEREST=BALANCE*ERATE;
PRINCIPAL=PMT-INTEREST;
OUTPUT;
END;
Format PMT BALANCE INTEREST PRINCIPAL DOllAR21.2;
RUN;
What is is supposed to do (provide test data in the form of a datastep, and required output plus explanation)? I don't know what an EMI calculator is. Perhaps it should total the value across records? If so then use a retain:
data emi_form;
retain emi;
p=1000;
...;
run;
Dear Sir,
EMI stands for the Easy Monthly Installment against the Loan which one take from any bank or any one else.
suppose MR A took loan of $ 10000 and the interest Rate is 10% on that. The period choosen is 2 year. then Mr A has to money return to the Money lendor on small donation.
Now Kindly Help me Please.
Thanks.
Not sure what you are after, but your formula ends up like:
P*R*(1+R)
after being simplifed, N is irrelevant. Suggest you check your formula.
You missed to read the formula correctly. Use this and find whether this works for you.
data have;
P=100000;
R=0.12;
do N=1 to 12;
EMI=(P*R*(1+R)**N)/((1+R)**N-1);
output;
end;
run;
data have; P=100000; R=0.12; do N=1 to 12; EMI=(P*R*(1+R)**N)/((1+R)**N-1); output; end; run;
Dear
this is not working. it is not giving the desired output.
Here's a workup for a full payment plan, includes the payment amount, interest portion, principal portion, balance at each time period. Assumes payment at end of period.
data emi_form;
P=100000;
R=0.12;
N=12;
Years=1;
Balance=P;
ERate=R/N;
NPER=N*YEARS;
DO i=1 to NPER;
PMT= (ERATE + ERATE/(((1+ERATE)**NPER) -1))*P;
BALANCE= BALANCe*(1+ERATE) - PMT;
INTEREST=BALANCE*ERATE;
PRINCIPAL=PMT-INTEREST;
OUTPUT;
END;
Format PMT BALANCE INTEREST PRINCIPAL DOllAR21.2;
RUN;
Thank You very much Reeza.
I have no word to say.
after completing my small concepts I will go to learn the Functions.
Hi, the output here matches what you get on EMI Calculator ...
http://ncalculators.com/mortgage/emi-calculator.htm
(close to but not the same as Reeza's ... maybe you really want to write all the formulas on your own but to me that's akin to writing a data step to compute means and standard deviations rather than using PROC MEANS or SAS functions)
data ci (keep=period p prin int);
retain initial 100000 rate 0.12;
p = mort(initial, . , rate/12 , 12);
do period=1 to 12;
prin = ppmt(0.12/12, period, 12, 100000);
int = p - prin;
output;
end;
label p='payment' prin='principle' int='interest';
run;
period payment principle interest
1 $8,885 $7,885 $1,000
2 $8,885 $7,964 $921
3 $8,885 $8,043 $842
4 $8,885 $8,124 $761
5 $8,885 $8,205 $680
6 $8,885 $8,287 $598
7 $8,885 $8,370 $515
8 $8,885 $8,454 $431
9 $8,885 $8,538 $347
10 $8,885 $8,624 $261
11 $8,885 $8,710 $175
12 $8,885 $8,797 $88
Hi. Yes, it is similar but uses a new function ... PPMT. Take a look at ...
FINANCE Function
Computes financial calculations such as depreciation, maturation, accrued interest, net present value, periodic savings, and internal rates of return.
If you have some $$$ to spend on a book and want to learn about SAS functions, I would buy Ron Cody's book ...
SAS® Functions by Example, Second Edition
http://www.sas.com/store/prodBK_62857_en.html
Even if you do not buy the book, all the SAS code and data used can be downloaded (FREE) ...
http://support.sas.com/downloads/package.htm?pid=1680
and you can read an excerpt of the book (FREE) ...
http://www.sas.com/storefront/aux/en/spfunctionxexample/62857_excerpt.pdf
Ron also has number of function-related papers (FREE) that you can find via Google seraches, for example ...
An Introduction to SAS® Character Functions
http://www2.sas.com/proceedings/sugi31/247-31.pdf
HI. Re " ... good to understand the math behind functions ... " , your code did produce different answers with the same set of parameters (monthly payment, interest, etc.). Was that really the correct math for EMI? Just curious.
I don't actually get the same numbers when I run your code Mike.
I did have to change it to the finance PPMT function though...
data ci (keep=period p prin int);
retain initial 100000 rate 0.12;
p = mort(initial, . , rate/12 , 12);
do period=1 to 12;
prin = finance('ppmt', 0.12/12, period, 12, 100000);
int = p - prin;
output;
end;
label p='payment' prin='principle' int='interest';
run;
proc print data=ci;
run;
Obs p period prin int
1 8884.88 1 -7884.88 16769.76
2 8884.88 2 -7963.73 16848.61
3 8884.88 3 -8043.36 16928.24
4 8884.88 4 -8123.80 17008.68
5 8884.88 5 -8205.04 17089.92
6 8884.88 6 -8287.09 17171.97
7 8884.88 7 -8369.96 17254.84
8 8884.88 8 -8453.66 17338.54
9 8884.88 9 -8538.19 17423.07
10 8884.88 10 -8623.58 17508.45
11 8884.88 11 -8709.81 17594.69
12 8884.88 12 -8796.91 17681.79
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: