lapply() auf einem Data Frame
Wenn du statt einer Liste einen Data Frame mit Aktienrenditen hast, kannst du lapply() trotzdem verwenden? Ja! Überraschenderweise sind Data Frames unter der Haube tatsächlich Listen, und ein Aufruf von lapply() wendet die Funktion auf jede Spalte des Data Frames an.
df
a b
1 1 4
2 2 6
class(df)
[1] "data.frame"
lapply(df, FUN = sum)
$a
[1] 3
$b
[1] 10
lapply() hat jede Spalte im Data Frame summiert, gibt aber gemäß seiner Konvention immer eine Liste zurück. Ein Data Frame mit täglichen Aktienrenditen als Dezimalzahlen namens stock_return wurde bereitgestellt.
Diese Übung ist Teil des Kurses
R für Finanzen – Aufbaukurs
Anleitung zur Übung
- Gib
stock_returnaus, um den Data Frame zu sehen. - Verwende
lapply(), um den Durchschnitt (mean) jeder Spalte zu berechnen. - Erstelle eine Funktion für die Sharpe-Ratio. Sie sollte den Durchschnitt der Renditen nehmen, davon den risikofreien Zinssatz (
.03%) abziehen und anschließend durch die Standardabweichung der Renditen teilen. - Verwende
lapply(), um die Sharpe-Ratio jeder Spalte zu berechnen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___