Aplică funcții care returnează NULL
În toate exercițiile anterioare, s-a presupus că funcțiile aplicate asupra vectorilor și listelor returnează un rezultat semnificativ. De exemplu, funcția tolower() returnează pur și simplu șirurile de caractere cu literele transformate în minuscule. Însă nu va fi întotdeauna cazul. Să presupunem că vrei să afișezi structura fiecărui element dintr-o listă. Ai putea folosi funcția str() în acest scop, care returnează NULL:
lapply(list(1, "a", TRUE), str)
Acest apel returnează de fapt o listă de aceeași dimensiune cu lista de intrare, care conține doar valori NULL. Pe de altă parte, apelând
str(TRUE)
de sine stătător, se afișează în consolă doar structura valorii logice, nu NULL. Aceasta se întâmplă deoarece str() folosește invisible() în culise, care returnează o copie invizibilă a valorii returnate – în acest caz, NULL. Astfel, rezultatul nu este afișat atunci când str() nu este asignat.
Ce va returna următorul bloc de cod (split_low este deja disponibil în spațiul de lucru)? Încearcă să raționezi asupra rezultatului înainte de a-l executa pur și simplu în consolă!
lapply(split_low, function(x) {
if (nchar(x[1]) > 5) {
return(NULL)
} else {
return(x[2])
}
})
Acest exercițiu face parte din cursul
R intermediar
Exercițiu interactiv practic
Transformă teoria în practică cu unul dintre exercițiile noastre interactive
Începe exercițiul