Échec de simplification
Pour un usage interactif, sapply() est très pratique. Il déduit le type de sortie afin de simplifier le résultat, et en général cela fonctionne bien. Cependant, sapply() n’est pas une option sûre lorsque vous écrivez des fonctions. Si sapply() ne peut pas simplifier votre sortie, il reviendra par défaut à une liste, comme lapply(). Cela peut être dangereux et casser des fonctions personnalisées si vous avez supposé que sapply() renverrait un vecteur simplifié.
Examinons un exercice utilisant une liste contenant des informations sur le krach boursier de 2008.
Cet exercice fait partie du cours
R intermédiaire pour la finance
Instructions
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 réside dans 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-il pas pu simplifier ce résultat ?
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()
___