lapply() na ramce danych
Co by było, gdybyś zamiast listy miał ramkę danych ze stopami zwrotu akcji – czy lapply() nadal by działało? Tak! Co może zaskakiwać, ramki danych są w gruncie rzeczy listami, dlatego wywołanie lapply() zastosuje funkcję do każdej kolumny ramki danych.
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() zsumowało każdą kolumnę ramki danych, zachowując przy tym swój zwyczaj – zawsze zwraca listę. Przygotowano ramkę danych z dziennymi stopami zwrotu akcji wyrażonymi w postaci ułamków dziesiętnych, o nazwie stock_return.
To ćwiczenie jest częścią kursu
R dla finansów – poziom średnio zaawansowany
Instrukcje do ćwiczenia
- Wyświetl
stock_return, aby zobaczyć zawartość ramki danych. - Użyj
lapply(), aby obliczyć średnią (mean) każdej kolumny. - Napisz funkcję obliczającą wskaźnik Sharpe'a. Powinna ona obliczać średnią zwrotów, odejmować od niej stopę wolną od ryzyka (
.03%), a następnie dzielić wynik przez odchylenie standardowe zwrotów. - Użyj
lapply(), aby obliczyć wskaźnik Sharpe'a dla każdej kolumny.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___