如何让R计算负IRR情景?

时间:2016-07-25 15:44:32

标签: r negative-number irr

我一直在做随机现金流量建模。在其中一些情景中,内部收益率为负值(现金流量超过现金流量)。 R似乎讨厌这个。我得到一个uniroot错误。我使用了FinCal包irr函数,我甚至尝试编写自己的uniroot IRR公式。重要的是,任何公式都能解决正负IRR情景。

有任何建议或想法吗?是否有一个处理这个的R包,或一个简单的uniroot公式?

谢谢!

1 个答案:

答案 0 :(得分:0)

我最终编写了自己的代码(基于来自FinCal的irr),其中忽略了错误。当uniroot正在寻找解决方案时,我还改变了范围以包含负数。仅供参考 - 由于价值超出范围或因为可能存在两种解决方案而发生错误。使用irr4来解决。

    irr3<-function (cf) 
    {  n <- length(cf)
    subcf <- cf[2:n]
    uniroot(function(r) -1 * pv.uneven(r, subcf) + cf[1], lower = -.2, upper =      .2, tol = .000001)$root}

   irr4<-function (x) {
   out<-tryCatch(irr3(x),error= function(e) NULL)
   return(out)}