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()emap(.x, "error"). - Un estrattore dei "non-null", combinando
safely()ediscard(.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
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'elementotype.
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")