CommencezCommencez gratuitement

É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

Voir le cours

Instructions de l’exercice

La liste market_crash a été créée pour vous.

  • Utilisez sapply() pour obtenir la class() de chaque élément de market_crash.


Une nouvelle liste, market_crash2, a été créée. La différence tient à la création de la date!

  • Utilisez lapply() pour obtenir la class() de chaque élément de market_crash2.
  • Utilisez sapply() pour obtenir la class() de chaque élément de market_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()
___
Modifier et exécuter le code