Vereinfachen fehlgeschlagen
Für die interaktive Nutzung ist sapply() super. Es rät den Ausgabetyp, um zu vereinfachen, und das ist normalerweise in Ordnung. Beim Schreiben eigener Funktionen ist sapply() jedoch keine sichere Wahl. Wenn sapply() deine Ausgabe nicht vereinfachen kann, gibt es standardmäßig eine Liste zurück – genau wie lapply(). Das kann gefährlich sein und eigene Funktionen kaputtmachen, wenn du erwartet hast, dass sapply() einen vereinfachten Vektor zurückgibt.
Schauen wir uns eine Übung mit einer Liste an, die Informationen über den Börsencrash von 2008 enthält.
Diese Übung ist Teil des Kurses
R für Finanzen – Aufbaukurs
Anleitung zur Übung
Die Liste market_crash wurde für dich erstellt.
- Verwende
sapply(), um dieclass()jedes Elements inmarket_crashzu ermitteln.
Es wurde eine neue Liste market_crash2 erstellt. Der Unterschied liegt in der Erstellung des Datums!
- Verwende
lapply(), um dieclass()jedes Elements inmarket_crash2zu ermitteln. - Verwende
sapply(), um dieclass()jedes Elements inmarket_crash2zu ermitteln.
date in market_crash2 hat mehrere Klassen. Warum konnte sapply() das nicht vereinfachen?
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()
___