Wiele argumentów (2)
Przyjrzyjmy się bardziej złożonemu przykładowi. Pamiętasz wartość bieżącą z kursu Introduction to R for Finance? Jeśli nie, możesz odświeżyć materiał z wideo dostępnego tutaj. Chodzi o to, żeby zdyskontować pieniądze, które otrzymasz w przyszłości, przy określonej stopie procentowej – tak, by odzwierciedlały ich wartość w dzisiejszych złotych. Do tego celu służy następujący ogólny wzór:
present_value <- cash_flow * (1 + i / 100) ^ -year
Czy nie byłoby wygodnie mieć funkcję, która wykonuje to obliczenie za ciebie? Na przykład o takiej postaci:
present_value <- pv(cash_flow, i, year)
Taka funkcja powinna działać zarówno wtedy, gdy przekażesz liczby, np. pv(1500, 5, 2), jak i wtedy, gdy przekażesz wektory jednakowej długości – żeby obliczyć cały wektor wartości bieżących naraz!
Do dyspozycji masz funkcję percent_to_decimal().
To ćwiczenie jest częścią kursu
R dla finansów – poziom średnio zaawansowany
Instrukcje do ćwiczenia
- Uzupełnij brakujące fragmenty funkcji tak, aby spełniała następujące warunki:
- Przyjmowała argumenty:
cash_flow,i,year - Tworzyła mnożnik dyskontowy:
(1 + i / 100). Użyj funkcjipercent_to_decimal(), aby przekonwertowaćina liczbę dziesiętną. - Wykonywała obliczenie wartości bieżącej. Nie przypisuj wyniku do zmiennej. Jako ostatnia wykonana linia zostanie on zwrócony automatycznie.
- Przyjmowała argumenty:
- Oblicz wartość bieżącą kwoty 1200 USD przy stopie procentowej 7%, która ma zostać otrzymana za 3 lata.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___