IniziaInizia gratis

Pulisci i tuoi dati con keep

Dall’inizio del corso, stiamo usando i risultati di un A/B test durato una settimana.

Abbiamo raccolto questi risultati in una lista chiamata all_visits. Questa lista contiene visit_a, visit_b e visit_c. Questi vettori non hanno nomi. Ognuno contiene sette numeri, uno per ogni giorno della settimana.

La prima domanda che vogliamo porci è: in quali giorni si sono superate in media 100 visite all’ora? Useremo la funzione keep(). Ma la risposta non sarebbe leggibile con un vettore senza nomi: avresti i numeri, ma non sapresti a quale giorno corrispondono.

La buona notizia è che puoi usare la funzione set_names() per risolvere il problema. È proprio ciò che faremo in questo capitolo: prima useremo keep() su vettori senza nomi, poi su vettori con nomi.

Questo esercizio fa parte del corso

Programmazione funzionale intermedia con purrr

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un mapper che verifichi se .x è maggiore di 100. Lo userai due volte.
  • Combina questo mapper con keep() e applicalo alla lista senza nomi all_visit. Poiché il risultato non ha nomi, non sai quali giorni hai mantenuto.
  • Assegna un nome a ciascun vettore combinando map() e set_names(), usando il vettore di nomi che ti abbiamo fornito.
  • Applica il mapper creato in precedenza alla nuova lista con nomi. Come vedi, ora è molto più leggibile!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create a mapper that test if .x is more than 100 
is_more_than_hundred <- ___(~ .x > 100)

# Use this mapper with keep() on the all_visits object 
map(all_visits, ~ ___(.x, is_more_than_hundred))

# Use the  day vector to set names to all_list
day <- c("mon", "tue", "wed", "thu", "fri", "sat", "sun")
full_visits_named <- map(all_visits, ~ ___(.x, ___))

# Use this mapper with keep() 
map(full_visits_named, ~ ___(.x, ___))
Modifica ed esegui il codice