class: title-slide <script async defer data-domain="rstatszh.github.io/website" src="https://plausible.io/js/plausible.js"></script> # rstatsZH - Data Science mit R ## Daten Transformation mit dplyr - Teil 2 .bottom[
Lars Schöbitz
2023-09-28
] --- class: left background-position: right background-size: contain # Rückblick - Woche 3 **`ggplot2` Visualisierungen anpassen** - Skalierungen - `scale_` Funktionen - Aussehen - `theme` Funktionen **`dplyr` Funktionen ** - `filter`: Zeilen mit bestimmten Kriterien auswählen .footnote[Photo by: [Annie Spratt](https://unsplash.com/photos/nVrqbvzOh08)] ??? --- background-image: url(img/dplyr_filter.jpg) background-size: 80% ## dplyr::filter() - Zeilen mit bestimmten Kriterien auswählen .footnote[Artwork by [@allison_horst](https://www.allisonhorst.com/)] --- background-position: right background-size: contain # Ziele für diese Woche Am Ende dieser Woche könnt ihr: - mehr als zehn Funktionen des R Package `{dplyr}` anwenden, um - Daten einzugrenzen - neue Variablen zu erstellen - zusammefassende Statistiken zu berechnen - `NA` Werte aus euren Daten entfernen .footnote[Photo by: [Ameer Basheer](https://unsplash.com/photos/nVrqbvzOh08)] --- .note[ # Praktikum 5 - dplyr ## Live Code 1. **Posit Cloud**: Öffne deinen Arbeitsbereich für den Kurs in der Posit Cloud 2. **Posit Cloud / Projects**: Öffne erneut das Praktikum 05 3. Folgt wieder auf dem Bildschirm ] --- .note[ # Praktikum 6 - dplyr ## In 2er Teams 1. **Posit Cloud**: Öffne deinen Arbeitsbereich für den Kurs in der Posit Cloud 2. **Posit Cloud / Projects**: Öffne erneut das Praktikum 06 ] --- ## dplyr::select() - Spalten beim Namen auswählen ```r # Erste Möglichkeit penguins %>% select(species, bill_length_mm, bill_depth_mm, flipper_length_mm) # Zweite Möglichkeit penguins %>% select(species, bill_length_mm:flipper_length_mm) # Dritte Möglichkeit - nicht zu empfehlen penguins %>% select(1, 3, 4, 5) ``` ``` # A tibble: 4 × 4 species bill_length_mm bill_depth_mm flipper_length_mm <fct> <dbl> <dbl> <int> 1 Adelie 39.1 18.7 181 2 Adelie 39.5 17.4 186 3 Adelie 40.3 18 195 4 Adelie NA NA NA ``` --- ## dplyr::arrange() - Zeilen neu ordnen ```r # Aufsteigende Reihenfolge penguins %>% arrange(body_mass_g) # Absteigende Reihenfolge penguins %>% arrange(desc(body_mass_g)) ``` --- ## dplyr::select() - Hilfsfunktionen ```r penguins %>% select(starts_with(match = "BILL", # Ignoriere Gross- und Kleinschreibung ignore.case = TRUE)) # Standardeinstellung ``` ``` # A tibble: 344 × 2 bill_length_mm bill_depth_mm <dbl> <dbl> 1 39.1 18.7 2 39.5 17.4 3 40.3 18 4 NA NA 5 36.7 19.3 6 39.3 20.6 # ℹ 338 more rows ``` --- ## dplyr::select() - Hilfsfunktionen ```r penguins %>% select(starts_with(match = "BILL", # Ignoriere Gross- und Kleinschreibung ignore.case = FALSE)) # Geändert auf FALSE ``` ``` # A tibble: 344 × 0 ``` Mehr Informationen zu Hilfsfunktionen: https://dplyr.tidyverse.org/reference/select.html --- background-image: url(img/dplyr_relocate.png) background-size: 60% ## dplyr::relocate() - Spalten verschieben .footnote[Artwork by [@allison_horst](https://www.allisonhorst.com/)] --- ## dplyr::rename() - Spalten umbennenen ```r penguins %>% rename(mass = body_mass_g) # neuer name = alter name ``` ``` # A tibble: 344 × 8 species island bill_length_mm bill_depth_mm flipper_length_mm <fct> <fct> <dbl> <dbl> <int> 1 Adelie Torgers… 39.1 18.7 181 2 Adelie Torgers… 39.5 17.4 186 3 Adelie Torgers… 40.3 18 195 4 Adelie Torgers… NA NA NA 5 Adelie Torgers… 36.7 19.3 193 6 Adelie Torgers… 39.3 20.6 190 # ℹ 338 more rows # ℹ 3 more variables: mass <int>, sex <fct>, year <int> ``` --- .note[ # Praktikum 5 - dplyr ## Live Code 1. **Posit Cloud**: Öffne deinen Arbeitsbereich für den Kurs in der Posit Cloud 2. **Posit Cloud / Projects**: Öffne erneut das Praktikum 05 3. Folgt wieder auf dem Bildschirm ] --- .note[ # Praktikum 6 - dplyr - Teil 5 ## Hausaufgabe 1. **Posit Cloud**: Öffne deinen Arbeitsbereich für den Kurs in der Posit Cloud 2. **Posit Cloud / Projects**: Öffne erneut das Praktikum 06 ] --- background-image: url(img/dplyr_mutate.png) background-size: 50% ## dplyr::mutate() - Spalten hinzufügen .footnote[Artwork by [@allison_horst](https://www.allisonhorst.com/)] --- ## dplyr::mutate() - Mit anderen Funktionen .panelset[ .panel[.panel-name[Factor relevel] ```r library(forcats) penguins_relevel <- penguins %>% mutate(species = fct_relevel(species, c("Chinstrap", "Gentoo", "Adelie"))) ``` ] .panel[.panel-name[Plot Code] ```r *ggplot(data = penguins_relevel, mapping = aes(x = bill_depth_mm, y = bill_length_mm, colour = species)) + geom_point() ``` ] .panel[.panel-name[Plot] <img src="e1_d04-data-transform-teil2_files/figure-html/unnamed-chunk-11-1.png" width="80%" style="display: block; margin: auto;" /> ] ] --- .note[ # Praktikum 7 - dplyr ## Live Code 1. **GitHub**: Öffne die GitHub Organisation für den Kurs: https://github.com/rstatszh-k008 2. **GitHub**: Nutze die Suche um das Praktikum 7 (prak-07) mit deinem Benutzernamen zu finden 3. **GitHub**: Klicke auf den grünen Button (Code) und kopiere die URL in die Zwischenablage 3. **Posit Cloud**: Öffne deinen Arbeitsbereich für den Kurs in der Posit Cloud 4. **Posit Cloud / Projects**: Klicke auf "New Project from GitHub Repository" 5. **RStudio IDE**: Finde den Datei Manager und den Git Reiter 6. **Zoom Chat**: Schreibt wenn ihr soweit seid ] --- class: middle, inverse # .big[Feedback] --- class: left background-image: url(img/tor.jpg) background-position: right background-size: contain # Ziele erreicht? Bitte ausfüllen: [kutt.it/rstatszh-eval](https://kutt.it/rstatszh-eval) .pull-left[ .footnote[Photo by: [Virgil Cayasa](https://unsplash.com/@virgilcayasa)] ] --- class: middle, inverse # .big[Hausaufgabe] --- # 🌻 Danke Für die Aufmerksamkeit! Für die R packages [{xaringan}](https://github.com/yihui/xaringan) und [{xaringanthemer}](https://github.com/gadenbuie/xaringanthemer) mit welchen die Folien geschrieben wurden. Eine PDF Version der Folien kann hier heruntergeladen werden: https://github.com/rstatsZH/website/raw/master/slides/e1_d04-data-transform-teil2/e1_d04-data-transform-teil2.pdf
Für [Data Science in a Box](https://datasciencebox.org/) und [Remaster the Tidyverse](https://github.com/rstudio-education/remaster-the-tidyverse), von welchen ich Materialien für diesen Kurs nutze und welche genau wie diese Folien mit [Creative Commons Attribution Share Alike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/) lizensiert sind.