IniziaInizia gratis

Quando la semplificazione fallisce

Per l'uso interattivo, sapply() è ottimo. Prova a indovinare il tipo di output per poter semplificare, e di solito va bene. Tuttavia, sapply() non è un'opzione sicura quando scrivi funzioni. Se sapply() non riesce a semplificare l'output, per impostazione predefinita restituirà una lista proprio come lapply(). Questo può essere rischioso e rompere funzioni personalizzate se le hai scritte aspettandoti che sapply() restituisse un vettore semplificato.

Vediamo un esercizio usando una lista che contiene informazioni sul crollo del mercato azionario del 2008.

Questo esercizio fa parte del corso

R intermedio per la finanza

Visualizza il corso

Istruzioni dell'esercizio

La lista market_crash è già stata creata per te.

  • Usa sapply() per ottenere la class() di ciascun elemento in market_crash.


È stata creata una nuova lista, market_crash2. La differenza sta nella creazione della data!

  • Usa lapply() per ottenere la class() di ciascun elemento in market_crash2.
  • Usa sapply() per ottenere la class() di ciascun elemento in market_crash2.


date in market_crash2 ha più classi. Perché sapply() non è riuscito a semplificare?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
___
Modifica ed esegui il codice