Argumente multiple (2)
Să analizăm un exemplu mai complex. Îți amintești de valoarea prezentă din cursul Introduction to R for Finance? Dacă nu, poți revedea videoclipul aferent aici. Ideea de bază este că vrei să actualizezi o sumă de bani pe care o vei primi în viitor, folosind o rată a dobânzii specifică, pentru a-i reprezenta valoarea în banii de astăzi. Formula generală dezvoltată pentru acest calcul este:
present_value <- cash_flow * (1 + i / 100) ^ -year
N-ar fi util să ai o funcție care să facă acest calcul automat? Ceva de forma:
present_value <- pv(cash_flow, i, year)
Această funcție ar trebui să funcționeze atât dacă îi transmiți valori numerice simple, precum pv(1500, 5, 2), cât și dacă îi transmiți vectori de lungime egală, pentru a calcula un întreg vector de valori prezente dintr-o dată!
Funcția percent_to_decimal() este deja disponibilă și o poți folosi.
Acest exercițiu face parte din cursul
R intermediar pentru finanțe
Instrucțiuni pentru exercițiu
- Completează spațiile libere din funcție astfel încât aceasta să realizeze următoarele:
- Să primească argumentele:
cash_flow,i,year - Să creeze multiplicatorul de actualizare:
(1 + i / 100). Folosește funcțiapercent_to_decimal()pentru a convertiila zecimal. - Să efectueze calculul valorii prezente. Nu stoca rezultatul într-o variabilă. Deoarece este ultima linie executată, va fi returnată automat.
- Să primească argumentele:
- Calculează valoarea prezentă a 1.200 $, la o rată a dobânzii de 7%, pentru o sumă ce urmează a fi primită peste 3 ani.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___