Stosowanie funkcji zwracających NULL
We wszystkich poprzednich ćwiczeniach zakładaliśmy, że funkcje stosowane na wektorach i listach zwracają sensowne wyniki. Na przykład funkcja tolower() po prostu zwraca ciągi znaków zapisane małymi literami. Nie zawsze jednak tak jest. Wyobraź sobie, że chcesz wyświetlić strukturę każdego elementu listy. Możesz do tego użyć funkcji str(), która zwraca NULL:
lapply(list(1, "a", TRUE), str)
To wywołanie zwraca listę o tym samym rozmiarze co lista wejściowa, zawierającą same wartości NULL. Z drugiej strony wywołanie
str(TRUE)
samodzielnie wypisuje na konsolę tylko strukturę wartości logicznej – bez NULL. Dzieje się tak, ponieważ str() korzysta w tle z funkcji invisible(), która zwraca niewidoczną kopię wartości zwracanej – w tym przypadku NULL. Dzięki temu wartość nie jest wypisywana, gdy wynik str() nie zostaje przypisany do zmiennej.
Co zwróci poniższy fragment kodu (split_low jest już dostępne w obszarze roboczym)? Zastanów się nad wynikiem, zanim uruchomisz kod na konsoli!
lapply(split_low, function(x) {
if (nchar(x[1]) > 5) {
return(NULL)
} else {
return(x[2])
}
})
To ćwiczenie jest częścią kursu
Intermediate R
Interaktywne ćwiczenie praktyczne
Przekształć teorię w praktykę dzięki jednemu z naszych interaktywnych ćwiczeń
Rozpocznij ćwiczenie