Несколько аргументов (2)
Рассмотрим более сложный пример. Помните понятие приведённой стоимости из курса Introduction to R for Finance? Если нет, вы можете посмотреть соответствующее видео здесь. Суть в том, что будущие денежные поступления нужно дисконтировать по определённой процентной ставке, чтобы выразить их стоимость в сегодняшних деньгах. Для этого используется следующая формула:
present_value <- cash_flow * (1 + i / 100) ^ -year
Было бы удобно иметь функцию, которая выполняет этот расчёт автоматически. Например, такого вида:
present_value <- pv(cash_flow, i, year)
Эта функция должна работать как с числовыми значениями, например pv(1500, 5, 2), так и с векторами одинаковой длины — чтобы сразу вычислять целый вектор приведённых стоимостей!
Функция percent_to_decimal() уже доступна для использования.
Это упражнение является частью курса
Средний уровень R для финансов
Инструкции к упражнению
- Заполните пропуски в функции так, чтобы она выполняла следующее:
- Принимала аргументы:
cash_flow,i,year - Вычисляла дисконтный множитель:
(1 + i / 100). Используйте функциюpercent_to_decimal()для переводаiв десятичную форму. - Выполняла расчёт приведённой стоимости. Не сохраняйте результат в переменную — как последняя выполненная строка, он вернётся автоматически.
- Принимала аргументы:
- Вычислите приведённую стоимость суммы в $1200 при процентной ставке 7%, которая будет получена через 3 года.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___