Échec de la simplification
Pour une utilisation interactive, sapply() est très pratique. Elle devine le type de sortie pour simplifier le résultat, et en général, cela convient. Toutefois, sapply() n'est pas une option sûre lorsque vous écrivez des fonctions. Si sapply() ne peut pas simplifier votre sortie, elle retourne par défaut une liste, tout comme lapply(). Cela peut être risqué et briser des fonctions personnalisées si vous comptiez sur un vecteur simplifié en retour de sapply().
Voyons un exercice avec une liste qui contient de l'information sur le krach boursier de 2008.
Cette activité fait partie du cours
R intermédiaire pour la finance
Instructions de l’exercice
La liste market_crash a été créée pour vous.
- Utilisez
sapply()pour obtenir laclass()de chaque élément demarket_crash.
Une nouvelle liste, market_crash2, a été créée. La différence tient à la création de la date!
- Utilisez
lapply()pour obtenir laclass()de chaque élément demarket_crash2. - Utilisez
sapply()pour obtenir laclass()de chaque élément demarket_crash2.
date dans market_crash2 possède plusieurs classes. Pourquoi sapply() n'a-t-elle pas pu simplifier cela?
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Market crash with as.Date()
market_crash <- list(dow_jones_drop = 777.68,
date = as.Date("2008-09-28"))
# Find the classes with sapply()
___
# Market crash with as.POSIXct()
market_crash2 <- list(dow_jones_drop = 777.68,
date = as.POSIXct("2008-09-28"))
# Find the classes with lapply()
___
# Find the classes with sapply()
___