ÎncepețiÎncepe gratuit

Când simplificarea eșuează

Pentru utilizarea interactivă, sapply() este excelentă. Ghicește tipul rezultatului pentru a-l simplifica, iar de obicei asta funcționează bine. Totuși, sapply() nu este o opțiune sigură atunci când scrii funcții. Dacă sapply() nu poate simplifica rezultatul, va returna implicit o listă, la fel ca lapply(). Acest lucru poate fi periculos și poate strica funcțiile personalizate dacă le-ai scris așteptând că sapply() va returna un vector simplificat.

Hai să analizăm un exercițiu folosind o listă cu informații despre prăbușirea pieței bursiere din 2008.

Acest exercițiu face parte din cursul

R intermediar pentru finanțe

Vezi cursul

Instrucțiuni pentru exercițiu

Lista market_crash a fost creată pentru tine.

  • Folosește sapply() pentru a obține class() fiecărui element din market_crash.


O nouă listă, market_crash2, a fost creată. Diferența constă în modul de creare a datei!

  • Folosește lapply() pentru a obține class() fiecărui element din market_crash2.
  • Folosește sapply() pentru a obține class() fiecărui element din market_crash2.


Elementul date din market_crash2 are mai multe clase. De ce nu a putut sapply() să simplifice rezultatul?

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
___
Editează și rulează codul