1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Intermediate R

Connected

cvičení

Funkce vracející NULL

Ve všech předchozích cvičeních jsme předpokládali, že funkce aplikované na vektory a seznamy vracejí smysluplný výsledek. Například funkce tolower() jednoduše vrátí řetězce s převedenými znaky na malá písmena. To ale neplatí vždy. Představ si, že chceš zobrazit strukturu každého prvku seznamu. Můžeš k tomu použít funkci str(), která vrací NULL:

lapply(list(1, "a", TRUE), str)

Toto volání ve skutečnosti vrátí seznam stejné délky jako vstupní seznam, jehož všechny hodnoty jsou NULL. Pokud ale zavoláš

str(TRUE)

samostatně, vypíše se do konzole pouze struktura logické hodnoty, nikoli NULL. Je to proto, že str() interně používá invisible(), která vrátí neviditelnou kopii návratové hodnoty – v tomto případě NULL. Díky tomu se výsledek nevypíše, pokud není přiřazen do proměnné.

Co vrátí následující kód (split_low je už dostupný v pracovním prostředí)? Zkus si výsledek nejprve promyslet, než ho spustíš v konzoli!

lapply(split_low, function(x) {
  if (nchar(x[1]) > 5) {
    return(NULL)
  } else {
    return(x[2])
  }
})

Pokyny

50 XP

Možné odpovědi