lapply() en un data frame
Si, en lugar de una lista, tuvieras un data frame con rendimientos de acciones, ¿podrías seguir usando lapply()? ¡Sí! Quizá sorprenda, pero los data frames son en realidad listas por debajo, y una llamada a lapply() aplicaría la función a cada columna 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() sumó cada columna del data frame, pero mantiene su convención de devolver siempre una lista. Se te ha proporcionado un data frame de rendimientos diarios de acciones en decimales llamado stock_return.
Este ejercicio forma parte del curso
R intermedio para finanzas
Instrucciones del ejercicio
- Imprime
stock_returnpara ver el data frame. - Usa
lapply()para obtener la media (mean) de cada columna. - Crea una función para el ratio de Sharpe. Debe tomar la media de los rendimientos, restarle el tipo libre de riesgo (
.03%) y luego dividir entre la desviación estándar de los rendimientos. - Usa
lapply()para calcular el ratio de Sharpe de cada columna.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___