コメントですでに述べたように、単純なものを書く方が簡単です:
NPV<-function(paym,pdates,IRR){
ptimes<-as.Date(pdates)-min(as.Date(pdates))
ptimes<-as.numeric(ptimes,units="days")/365.25
NPV<-sum(paym*(1+IRR)^{-ptimes})
NPV
}
nlm(function(p){NPV(c(lumpsum,df$pmts),c(today,df$date),p)^2},p=0.1)
11.26% の IRR を与える
編集:
lifecontingencies
代わりにそれを使用したい場合は、パッケージの周りのクイックスカウト後に現在価値関数があります。
library(lifecontingencies)
capitals<-c(lumpsum,df$pmts)
times<-c(today,df$date)
times<-as.Date(times)-min(as.Date(times))
times<-as.numeric(times,units="days")/365.25
presentValue(cashFlows=capitals, timeIds=times,interestRates=0.03)
nlm(function(p){presentValue(capitals,times,p)^2},p=0.1)