IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea, all'interno della chiamata a map(), una versione con possibly() di read_lines() che in caso contrario restituisca 404.

  • Imposta i nomi dell'output.

  • Usa la funzione paste() con l'argomento collapse impostato 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)
Modifica ed esegui il codice