lapply() su un data frame
Se, invece di una lista, avessi un data frame di rendimenti azionari, potresti comunque usare lapply()? Sì! Forse in modo sorprendente, i data frame sono in realtà liste “sotto il cofano”, e una chiamata a lapply() applicherebbe la funzione a ogni colonna del 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() ha sommato ogni colonna del data frame, ma mantiene comunque la sua convenzione di restituire sempre una lista. Ti è stato fornito un data frame di rendimenti azionari giornalieri in decimali chiamato stock_return.
Questo esercizio fa parte del corso
R intermedio per la finanza
Istruzioni dell'esercizio
- Stampa
stock_returnper vedere il data frame. - Usa
lapply()per ottenere la media (mean) di ogni colonna. - Crea una funzione per lo sharpe ratio. Dovrebbe prendere la media dei rendimenti, sottrarre da essa il tasso privo di rischio (
.03%), e poi dividere per la deviazione standard dei rendimenti. - Usa
lapply()per calcolare lo sharpe ratio di ogni colonna.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___