Inizia subitoInizia 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 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 interattivo pratico

Prova questo esercizio completando questo 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