base FinancialMath FinCal tvm
Copy > #definisati novcani tok
> cf <- rep(1000, 48)
> head(cf)
[1] 1000 1000 1000 1000 1000 1000
> #izracunati kamatnu stopu na mjesecnom nivou
> #koristiti prosti obracunski metod
> ir.y <- 0.07
> ir.m <- rep(ir.y / 12, 48)
> head(ir.m)
[1] 0.005833333 0.005833333 0.005833333 0.005833333 0.005833333 0.005833333
> #diskontovanje novcanog toka
> dcf <- cf / cumprod(1 + ir.m)
> head(dcf)
[1] 994.2005 988.4346 982.7022 977.0030 971.3369 965.7036
> #odobreni iznos kredita
> npv <- sum(dcf)
> npv
[1] 41760.2
>
> #kreiranje korisnicke funkcije
> npv.foo <- function(cf, ir.y) {
+ ir.m <- rep(ir.y / 12, length(cf))
+ npv <- sum(cf / cumprod(1 + ir.m))
+ return(npv)
+ }
> #primijeniti funkciju npv.foo na zadate parametre
> npv.foo(cf = rep(1000, 48), ir.y = 0.07)
[1] 41760.2
Copy > #narednu komandu izvrsiti ukoliko FinancialMath paket vec nije instaliran
> #install.packages("FinancialMath")
> library(FinancialMath)
>
> #odobreni iznos kredita
> NPV(cf0 = 0, cf = rep(1e3, 48), times = 1:48, i = 0.07/12)
[1] 41760.2
Copy > #narednu komandu izvrsiti ukoliko FinCal paket vec nije instaliran
> #install.packages("FinCal")
> library(FinCal)
>
> #odobreni iznos kredita
> FinCal::npv(r = 0.07/12, cf = c(0, rep(1e3, 48)))
[1] 41760.2
Copy > #narednu komandu izvrsiti ukoliko tvm paket vec nije instaliran
> #install.packages("tvm")
> library(tvm)
>
> #odobreni iznos kredita
> tvm::npv(i = 0.07/12, cf = rep(1e3, 48), ts = 1:48)
[1] 41760.2