Filtrare le righe
Oltre a selezionare le colonne, un altro modo per estrarre le parti importanti del tuo insieme di dati è filtrare le righe. Questo si fa usando la funzione filter(). Per usare filter(), le passi una tibble e alcune condizioni logiche. Per esempio, per restituire solo le righe in cui i valori della colonna x sono maggiori di zero e i valori di y sono uguali ai valori di z, useresti quanto segue.
a_tibble %>%
filter(x > 0, y == z)
Prima di provare l'esercizio, tieni presenti due avvertenze. Primo, non confondere la funzione filter() di dplyr con la funzione filter() del pacchetto stats. Secondo, sparklyr converte il tuo codice dplyr in codice SQL prima di passarlo a Spark. Questo significa che al momento è supportato solo un numero limitato di operazioni di filtro. Per esempio, non puoi filtrare righe di caratteri usando espressioni regolari con un codice come
a_tibble %>%
filter(grepl("a regex", x))
La pagina di help di translate_sql() descrive le funzionalità disponibili. Puoi usare tranquillamente gli operatori di confronto come >, != e %in%; gli operatori aritmetici come +, ^ e %%; e gli operatori logici come &, | e !. Molte funzioni matematiche come log(), abs(), round() e sin() sono anch'esse supportate.
Come in precedenza, l'indicizzazione con parentesi quadre al momento non funziona.
Questo esercizio fa parte del corso
Introduzione a Spark con sparklyr in R
Istruzioni dell'esercizio
È già stata creata una connessione Spark chiamata spark_conn. È stata anche predefinita una tibble collegata ai metadati delle tracce archiviati in Spark, chiamata track_metadata_tbl.
- Come nel precedente esercizio, seleziona
artist_name,release,titleeyearusandoselect(). - Passa il risultato a
filter()per ottenere le tracce degli anni Sessanta.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)
# Manipulate the track metadata
track_metadata_tbl %>%
# Select columns
___ %>%
# Filter rows
___