尝试写了一个,测试了一下能用,可自己再进一步优化。
irr = function ( cash_flow ,cash_date = seq_along( cash_flow) -1 ,guess=c(-1,1e5) ) {
f = function(r ) sum ( cash_flow / ((1+r)^cash_date ) )
ans = uniroot(f, guess )$root
ans
}
cash_flow = c(-70,12,15,18,21,26) # from excel IRR example
irr(cash_flow)