Applica funzioni che restituiscono NULL
In tutti gli esercizi precedenti, si è dato per scontato che le funzioni applicate su vettori e liste restituissero effettivamente un risultato significativo. Per esempio, la funzione tolower() restituisce semplicemente le stringhe con i caratteri in minuscolo. Non sarà sempre così. Supponi di voler visualizzare la struttura di ogni elemento di una lista. Per farlo puoi usare la funzione str(), che restituisce NULL:
lapply(list(1, "a", TRUE), str)
Questa chiamata restituisce in realtà una lista, della stessa dimensione della lista di input, che contiene tutti valori NULL. D'altra parte, chiamando
str(TRUE)
da sola, stampa soltanto la struttura del valore logico in console, non NULL. Questo perché str() usa invisible() dietro le quinte, che restituisce una copia invisibile del valore di ritorno, in questo caso NULL. Questo evita che venga stampato quando il risultato di str() non viene assegnato.
Cosa restituirà il seguente blocco di codice (split_low è già disponibile nell'ambiente di lavoro)? Prova a ragionare sul risultato prima di eseguirlo semplicemente in console!
lapply(split_low, function(x) {
if (nchar(x[1]) > 5) {
return(NULL)
} else {
return(x[2])
}
})
Questo esercizio fa parte del corso
R intermedio
Esercizio pratico interattivo
Passa dalla teoria alla pratica con uno dei nostri esercizi interattivi
Inizia esercizio