lapply() sur un data frame
Si, au lieu d'une liste, vous aviez un data frame de rendements d'actions, pourriez-vous tout de même utiliser lapply() ? Oui ! De façon peut-être surprenante, les data frames sont en réalité des listes en interne, et un appel à lapply() appliquerait la fonction à chaque colonne du 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 additionné chaque colonne du data frame, mais suit toujours sa convention de retourner une liste. Un data frame de rendements journaliers d'actions en décimales appelé stock_return a été fourni.
Cet exercice fait partie du cours
R intermédiaire pour la finance
Instructions
- Affichez
stock_returnpour voir le data frame. - Utilisez
lapply()pour obtenir la moyenne (mean) de chaque colonne. - Créez une fonction pour le ratio de Sharpe. Elle doit prendre la moyenne des rendements, en soustraire le taux sans risque (
.03%), puis diviser par l'écart-type des rendements. - Utilisez
lapply()pour calculer le ratio de Sharpe de chaque colonne.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___