Rijen filteren
Naast kolommen selecteren kun je ook rijen filteren om de belangrijkste delen van je gegevensset te extraheren. Dit doe je met de functie filter(). Om filter() te gebruiken, geef je een tibble en een aantal logische voorwaarden door. Bijvoorbeeld, om alleen de rijen terug te krijgen waarbij de waarden in kolom x groter zijn dan nul én de waarden van y gelijk zijn aan die van z, gebruik je het volgende:
a_tibble %>%
filter(x > 0, y == z)
Voordat je aan de oefening begint, let op twee waarschuwingen. Ten eerste: verwar de filter()-functie van dplyr niet met de filter()-functie van het stats-pakket. Ten tweede: sparklyr zet je dplyr-code om naar SQL-databasecode voordat die naar Spark wordt gestuurd. Dat betekent dat momenteel slechts een beperkt aantal filterbewerkingen wordt ondersteund. Zo kun je bijvoorbeeld geen tekstrijen filteren met reguliere expressies met code zoals
a_tibble %>%
filter(grepl("a regex", x))
De helppagina van translate_sql() beschrijft de beschikbare functionaliteit. Je kunt in elk geval vergelijkingsoperatoren zoals >, != en %in% gebruiken; rekenkundige operatoren zoals +, ^ en %%; en logische operatoren zoals &, | en !. Veel wiskundige functies zoals log(), abs(), round() en sin() worden ook ondersteund.
Net als eerder werkt indexeren met vierkante haken momenteel niet.
Deze oefening maakt deel uit van de cursus
Introductie tot Spark met sparklyr in R
Oefeninstructies
Er is al een Spark-verbinding voor je aangemaakt als spark_conn. Een tibble gekoppeld aan de trackmetadata die in Spark is opgeslagen, is vooraf gedefinieerd als track_metadata_tbl.
- Selecteer, net als in de vorige oefening,
artist_name,release,titleenyearmetselect(). - Pipe het resultaat hiervan naar
filter()om de tracks uit de jaren 60 op te halen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# track_metadata_tbl has been pre-defined
glimpse(track_metadata_tbl)
# Manipulate the track metadata
track_metadata_tbl %>%
# Select columns
___ %>%
# Filter rows
___