Flera argument (2)
Nu ska vi titta på ett lite mer komplext exempel. Minns du nuvärde från kursen Introduction to R for Finance? Om inte kan du se videon för det här. Idén är att du vill diskontera pengar som du får i framtiden med en viss ränta, för att representera värdet av dessa pengar i dagens termer. Följande allmänna formel används för detta:
present_value <- cash_flow * (1 + i / 100) ^ -year
Vore det inte praktiskt att ha en funktion som utför den här beräkningen åt dig? Något i stil med:
present_value <- pv(cash_flow, i, year)
Funktionen ska fungera både om du skickar in enskilda tal som pv(1500, 5, 2) och om du skickar in vektorer av samma längd för att beräkna en hel nuvärdesvektor på en gång!
Funktionen percent_to_decimal() finns tillgänglig för dig att använda.
Den här övningen är en del av kursen
R för finans – fortsättningskurs
Övningsinstruktioner
- Fyll i luckorna i funktionen så att den gör följande:
- Ta emot argumenten:
cash_flow,i,year - Skapa diskonteringsmultiplikatorn:
(1 + i / 100). Använd funktionenpercent_to_decimal()för att konverteraitill ett decimaltal. - Utför nuvärdesberäkningen. Spara inte resultatet i en variabel. Eftersom det är den sista raden som körs returneras värdet automatiskt.
- Ta emot argumenten:
- Beräkna nuvärdet av 1 200 dollar, vid en ränta på 7 %, som ska tas emot om 3 år.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___