lapply() aplicat pe un data frame
Dacă, în loc de o listă, ai avea un data frame cu randamentele acțiunilor, ai putea folosi în continuare lapply()? Da! Poate surprinzător, data frame-urile sunt de fapt liste „pe dedesubt", iar un apel lapply() va aplica funcția fiecărei coloane din data frame.
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() a calculat suma fiecărei coloane din data frame, păstrând totuși convenția de a returna întotdeauna o listă. A fost furnizat un data frame cu randamentele zilnice ale acțiunilor exprimate ca zecimale, numit stock_return.
Acest exercițiu face parte din cursul
R intermediar pentru finanțe
Instrucțiuni pentru exercițiu
- Afișează
stock_returnpentru a vedea data frame-ul. - Folosește
lapply()pentru a calcula media (mean) fiecărei coloane. - Creează o funcție pentru rata Sharpe. Aceasta trebuie să calculeze media randamentelor, să scadă rata fără risc (
.03%) și apoi să împartă rezultatul la abaterea standard a randamentelor. - Folosește
lapply()pentru a calcula rata Sharpe a fiecărei coloane.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___