How to calculate IRR in R
Calculating IRR in R
Calculation of IRR in R is easy with the package called jrvFinance
. You can install this package with the command install.packages("jrvFinance")
.
Why do we need to calculate the IRR or Internal rate of returns?
Let us suppose a manager has an opportunity to invest in two projects, but can only choose one project. The projects are:
Project 1 requires $800 million in investment today, but it will pay 200,250,300,350,400 million in payments each year for the next 5 years.
Project 2 required $500 million in investment today, but it will pay 150,170,178,250,300 in payments each year for the next 5 years.
How would the manager decide which project to choose? To solve this problem we need to calculate the IRR of the two projects. We show the solution below.
library(jrvFinance) # This package has a the irr formula to solve our problem
library(tidyquant) # general R quant package
library(DT) # package to display pretty Data tables
project1_cf <- tibble(Year = 0:5,
cf = c(-800,200,250,300,350,400))
project2_cf <- tibble(Year = 0:5,
cf = c(-500,150,170,178,250,300))
project1_cf %>%
DT::datatable(rownames = FALSE,caption = "Project 1")
project2_cf %>%
DT::datatable(rownames = FALSE,caption = "Project 2")
# To calculate IRR we will use the IRR formula from the jrvFinance library
irr1 <- project1_cf %>%
select(cf) %>%
.[[1]] %>%
irr()
irr2 <- project2_cf %>%
select(cf) %>%
.[[1]] %>%
irr()
irr_tbl <- tibble(Name = c("Project 1", "Project 2"),
IRR = c(irr1,irr2))
irr_tbl %>%
datatable(caption = "Internal rate of returns for the two projects.")
From the above table we can see that project 1 has an IRR of 22.1603098 and project 2 has an IRR of 26.7619869. Even though project 1 offers higher cash flows, project 1 has a lower internal rate of returns. If the managers goal is to choose the project that maximizes profitability then he/she should choose project 2.