Aan de slagGa gratis aan de slag

Niet kunnen vereenvoudigen

Voor interactief gebruik is sapply() handig. Het raadt het outputtype zodat het kan vereenvoudigen, en dat is meestal prima. Maar sapply() is geen veilige keuze wanneer je functies schrijft. Als sapply() je output niet kan vereenvoudigen, valt het terug op het retourneren van een lijst, net als lapply(). Dat kan riskant zijn en aangepaste functies laten falen als je ervan uitging dat sapply() een vereenvoudigde vector zou teruggeven.

Laten we een oefening doen met een lijst met informatie over de beurscrash van 2008.

Deze oefening maakt deel uit van de cursus

R voor finance voor gevorderden

Cursus bekijken

Oefeninstructies

De lijst market_crash is voor je klaargezet.

  • Gebruik sapply() om de class() van elk element in market_crash op te halen.


Er is een nieuwe lijst gemaakt: market_crash2. Het verschil zit in hoe de datum is aangemaakt!

  • Gebruik lapply() om de class() van elk element in market_crash2 op te halen.
  • Gebruik sapply() om de class() van elk element in market_crash2 op te halen.


date in market_crash2 heeft meerdere classes. Waarom kon sapply() dit niet vereenvoudigen?

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
___
Code bewerken en uitvoeren