Mehrere Argumente (2)
Schauen wir uns ein etwas komplexeres Beispiel an. Erinnerst du dich an den Begriff Barwert aus dem Kurs Introduction to R for Finance? Falls nicht, kannst du das Video dazu hier anschauen. Die Idee ist, dass du Geld, das du in der Zukunft erhältst, mit einem bestimmten Zinssatz abzinst, um seinen Wert in heutigem Geld darzustellen. Dafür wurde die folgende allgemeine Formel entwickelt:
present_value <- cash_flow * (1 + i / 100) ^ -year
Wäre es nicht praktisch, eine Funktion zu haben, die diese Berechnung für dich übernimmt? Zum Beispiel in der Form:
present_value <- pv(cash_flow, i, year)
Diese Funktion sollte funktionieren, wenn du numerische Werte übergibst, wie pv(1500, 5, 2), und sie sollte auch funktionieren, wenn du gleich lange Vektoren übergibst, um einen gesamten Barwert-Vektor auf einmal zu berechnen!
Die Funktion percent_to_decimal() steht dir zur Verfügung.
Diese Übung ist Teil des Kurses
R für Finanzen – Aufbaukurs
Anleitung zur Übung
- Fülle die Lücken in der Funktion, sodass sie Folgendes tut:
- Erfordert die Argumente:
cash_flow,i,year - Erzeugt den Abzinsungsfaktor:
(1 + i / 100). Verwende die Funktionpercent_to_decimal(), umiin eine Dezimalzahl umzuwandeln. - Führt die Barwertberechnung aus. Speichere das Ergebnis nicht in einer Variable. Als letzte ausgeführte Zeile wird es automatisch zurückgegeben.
- Erfordert die Argumente:
- Berechne den Barwert von 1.200 $, bei einem Zinssatz von 7 %, der in 3 Jahren zufließt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___