ComeçarComece de graça

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

Ver curso

Instruções do exercício

A lista market_crash já foi criada para você.

  • Use sapply() para obter a class() de cada elemento em market_crash.


Uma nova lista, market_crash2, foi criada. A diferença está na criação da data!

  • Use lapply() para obter a class() de cada elemento em market_crash2.
  • Use sapply() para obter a class() de cada elemento em market_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()
___
Editar e executar o código