x <- c(9.777, 10.04, 9.207, 9.406)
div <- 0.7
t <- 3
div_adjust(x, t, div)
div_adjust(x, t, div, FALSE)
## assume there were three splits: adjust shares outstanding
shares <- c(100, 100, 200, 200, 1000, 1500)
t <- c(3, 5, 6)
ratio <- c(2, 5, 1.5)
### => invert ratio
split_adjust(shares, t, 1/ratio)
## [1] 1500 1500 1500 1500 1500 1500
split_adjust(shares, t, 1/ratio, backward = FALSE)
## [1] 100 100 100 100 100 100
## 'additive' ** FALSE ** (default setting)
x <- c(100, 95, 100, 95, 100)
div <- 5
t <- c(2, 4)
div_adjust(x, t, div)
## 90.25 90.25 95.00 95.00 100.00
returns(div_adjust(x, t, div))
## 0.00000000 0.05263158 0.00000000 0.05263158
## ==> reflect _actual_ returns 100/95 - 1
## 'additive' ** TRUE **
div_adjust(x, t, div, additive = TRUE)
## 90 90 95 95 100
returns(div_adjust(x, t, div, additive = TRUE))
## 0.00000000 0.05555556 0.00000000 0.05263158
## ==> reflect return 95/90 - 1
Run the code above in your browser using DataLab