Tutto in un'unica chiamata
Per rendere questo codice ancora più riproducibile, creeremo una funzione che faccia tutto in un'unica chiamata. Ti abbiamo già fornito uno scheletro della funzione: ora tocca a te completarlo!
Negli esercizi precedenti abbiamo scritto il processo in diversi passaggi. Adesso vogliamo farlo in una sola chiamata: scriveremo quindi una funzione che prende una lista di URL e restituisce i nomi degli elementi non raggiungibili.
Una volta scritta questa funzione, potrai salvarla e riutilizzarla ogni volta che ti serve ripulire una lista di URL. E magari inserirla in un pacchetto ;)
La lista urls dell'esercizio precedente è disponibile nel tuo workspace.
Questo esercizio fa parte del corso
Programmazione funzionale intermedia con purrr
Istruzioni dell'esercizio
Crea, all'interno della chiamata a
map(), una versione conpossibly()diread_lines()che in caso contrario restituisca404.Imposta i nomi dell'output.
Usa la funzione
paste()con l'argomentocollapseimpostato a" "per trasformare ogni sotto-lista in un vettore di caratteri.Rimuovi gli elementi uguali a 404.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
url_tester <- function(url_list){
url_list %>%
# Map a version of read_lines() that otherwise returns 404
map( ___(___, otherwise = ___) ) %>%
# Set the names of the result
___( urls ) %>%
# paste() and collapse each element
map(___, ___ = " ") %>%
# Remove the 404
___(___) %>%
names() # Will return the names of the good ones
}
# Try this function on the urls object
url_tester(urls)