lapply() sur un data frame
Si, au lieu d'une liste, vous aviez un data frame de rendements boursiers, pourriez-vous quand même utiliser lapply()? Oui! De façon peut-être surprenante, les data frames sont en fait des listes en arrière-plan, 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 respecte quand même sa convention de toujours retourner une liste. Un data frame de rendements boursiers quotidiens en décimales nommé stock_return est fourni.
Cette activité fait partie du cours
R intermédiaire pour la finance
Instructions de l’exercice
- 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 ce code d’exemple.
# Print stock_return
___
# lapply to get the average returns
___
# Sharpe ratio
sharpe <- function(returns) {
(___ - .0003) / ___
}
# lapply to get the sharpe ratio
___