Funktionen anwenden, die NULL zurückgeben
In allen vorherigen Übungen wurde davon ausgegangen, dass die auf Vektoren und Listen angewendeten Funktionen tatsächlich ein sinnvolles Ergebnis liefern. Zum Beispiel gibt die Funktion tolower()
einfach die eingegebene Zeichenkette in Kleinbuchstaben zurück. Das wird jedoch nicht immer der Fall sein. Angenommen, du möchtest die Struktur jedes Elements einer Liste anzeigen. Du könntest die str()
-Funktion verwenden, die NULL
zurückgibt:
lapply(list(1, "a", TRUE), str)
Dieser Aufruf gibt eine Liste zurück, die genauso groß ist wie die Eingabeliste und nur NULL
-Werte enthält. Angenommen, du nutzt aber nun folgenden Aufruf:
str(TRUE)
Dann gibt die Funktion nur die Struktur des logischen Werts in der Konsole aus, nicht NULL
. Das liegt daran, dass str()
im Hintergrund invisible()
verwendet, wodurch eine unsichtbare Kopie des Rückgabewerts zurückgegeben wird, in diesem Fall NULL
. So wird die Ausgabe des Werts verhindert, wenn das Ergebnis von str()
nicht zugewiesen wird.
Was wird der folgende Codeausschnitt wohl zurückgeben? (split_low
ist bereits im Arbeitsbereich verfügbar.) Durchdenke das mögliche Ergebnis zuerst selbst, bevor du den Code in der Konsole ausführst!
lapply(split_low, function(x) {
if (nchar(x[1]) > 5) {
return(NULL)
} else {
return(x[2])
}
})
Diese Übung ist Teil des Kurses
R für Fortgeschrittene
Interaktive Übung zum Anfassen
Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um
