CommencerCommencer gratuitement

É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

Afficher le cours

Instructions

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 réside dans 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-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()
___
Modifier et exécuter le code