1. Nauka
  2. /
  3. Kursy
  4. /
  5. Intermediate R

Connected

ćwiczenie

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])
  }
})

Instrukcje

50 XP

Możliwe odpowiedzi