IniziaInizia gratis

Perfezioniamo la nostra funzione

Stiamo ancora perfezionando la nostra funzione per rilevare se una lista di URL contiene elementi non disponibili.

Rivediamo cosa abbiamo scritto finora:

  • Un estrattore di errori, combinando safely() e map(.x, "error").
  • Un estrattore dei "non-null", combinando safely() e discard(.x, is.null).
  • Un generatore di 404, usando possibly(.x, otherwise = 404), che è stato trasformato in una funzione.

Modificheremo leggermente il comportamento di questa funzione: ora vuoi poter scegliere se restituire i risultati oppure gli errori.

Questo ti permetterà di rispondere a due domande con un'unica funzione: quali URL non sono raggiungibili e quali lo sono? Per farlo, aggiungerai un parametro chiamato "type" all'interno di questa funzione.

Il vettore urls e safe_read() sono disponibili nel tuo workspace.

Questo esercizio fa parte del corso

Programmazione funzionale intermedia con purrr

Visualizza il corso

Istruzioni dell'esercizio

Completa la definizione della funzione.

  • Applica in mappa safe_read() alla lista di URL.
  • Imposta i nomi del risultato con la lista di URL.
  • Trasponi il risultato in una lista di $result e $error.
  • Usa pluck() per estrarre l'elemento type.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Complete the function definition
url_tester <- function(url_list, type = c("result", "error")) {
  type <- match.arg(type)
  url_list %>%
    # Apply safe_read to each URL
    ___(___) %>%
    # Set the names to the URLs
    ___(___) %>%
    # Transpose into a list of $result and $error
    ___()  %>%
    # Pluck the type element
    ___(___) 
}

# Try this function on the urls object
url_tester(urls, type = "error") 
Modifica ed esegui il codice