Cuando no se puede simplificar
Para uso interactivo, sapply() va genial. Intenta adivinar el tipo de salida para poder simplificar, y normalmente funciona bien. Sin embargo, sapply() no es una opción segura cuando escribes funciones. Si sapply() no puede simplificar tu salida, por defecto devolverá una lista igual que lapply(). Esto puede ser peligroso y romper funciones personalizadas si las escribiste esperando que sapply() devolviera un vector simplificado.
Veamos un ejercicio usando una lista con información sobre el desplome del mercado de 2008.
Este ejercicio forma parte del curso
R intermedio para finanzas
Instrucciones del ejercicio
La lista market_crash ya está creada para ti.
- Usa
sapply()para obtener laclass()de cada elemento demarket_crash.
Se ha creado una nueva lista, market_crash2. ¡La diferencia está en cómo se creó la fecha!
- Usa
lapply()para obtener laclass()de cada elemento demarket_crash2. - Usa
sapply()para obtener laclass()de cada elemento demarket_crash2.
date en market_crash2 tiene múltiples clases. ¿Por qué sapply() no pudo simplificar esto?
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()
___