Falha ao simplificar
Para uso interativo, sapply() é ótimo. Ele tenta deduzir o tipo de saída para poder simplificar, e normalmente isso funciona bem. Porém, sapply() não é uma opção segura para usar ao escrever funções. Se sapply() não conseguir simplificar sua saída, ele voltará ao padrão de retornar uma lista, assim como lapply(). Isso pode ser perigoso e quebrar funções personalizadas se você as escreveu esperando que sapply() retornasse um vetor simplificado.
Vamos ver um exercício usando uma lista com informações sobre a crise do mercado financeiro de 2008.
Este exercício faz parte do curso
R Intermediário para Finanças
Instruções do exercício
A lista market_crash já foi criada para você.
- Use
sapply()para obter aclass()de cada elemento emmarket_crash.
Uma nova lista, market_crash2, foi criada. A diferença está na criação da data!
- Use
lapply()para obter aclass()de cada elemento emmarket_crash2. - Use
sapply()para obter aclass()de cada elemento emmarket_crash2.
date em market_crash2 tem várias classes. Por que sapply() não conseguiu simplificar isso?
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()
___