Copy > #odobreni iznos
> amount <- 5000
> #rocnost u mjesecima
> maturity <- 8 * 12
> #kamatna stopa na godisnjem nivou
> ir.y <- 0.0649
> #kamatna stopa na mjesecnom nivou
> ir.m <- ir.y / 12
> ir.m
[1] 0.005408333
> #mjesecni anuitet
> annuity <- amount * ir.m /( 1 - (1 + ir.m) ^ (-maturity) )
> annuity
[1] 66.90655
>
> #definisati funkciju za kreiranje plana otplate
> rep.plan.f <- function(p, a, r, m) {
+ rp <- data.frame(month = 1:m,
+ remaining.principal = NA,
+ monthly.principal = NA,
+ interest = NA,
+ annuity = rep(a, m))
+ rp$remaining.principal[1] <- p
+ for(i in 1:m) {
+ if(i == m) {
+ rp$monthly.principal[i] <- rp$remaining.principal[i]
+ rp$interest[i] <- rp$annuity[i] - rp$monthly.principal[i]
+ } else {
+ rp$interest[i] <- rp$remaining.principal[i] * r
+ rp$monthly.principal[i] <- rp$annuity[i] - rp$interest[i]
+ rp$remaining.principal[i + 1] <- rp$remaining.principal[i] -
+ rp$monthly.principal[i]
+ }
+ }
+ return(rp)
+ }
>
> #kreirati plan otplate
> rep.plan <- rep.plan.f(p = amount, a = annuity, r = ir.m, m = maturity)
> #prikazati prvih i poslednjih 6 mjeseci otplatnog plana
> head(rep.plan)
month remaining.principal monthly.principal interest annuity
1 1 5000.000 39.86488 27.04167 66.90655
2 2 4960.135 40.08049 26.82606 66.90655
3 3 4920.055 40.29726 26.60930 66.90655
4 4 4879.757 40.51520 26.39135 66.90655
5 5 4839.242 40.73432 26.17223 66.90655
6 6 4798.508 40.95462 25.95193 66.90655
> tail(rep.plan)
month remaining.principal monthly.principal interest annuity
91 91 393.94867 64.77595 2.1306057 66.90655
92 92 329.17272 65.12628 1.7802758 66.90655
93 93 264.04645 65.47850 1.4280512 66.90655
94 94 198.56795 65.83263 1.0739217 66.90655
95 95 132.73532 66.18867 0.7178769 66.90655
96 96 66.54664 66.54664 0.3599064 66.90655
> #provjera
> sum(rep.plan$annuity / cumprod(1 + rep(ir.m, maturity)))
[1] 5000
> sum(rep.plan$monthly.principal)
[1] 5000