class: center, middle, inverse, title-slide # Wiederholung ### Explorative Datenanalyse mit R
The R Bootcamp
@
CSS
### Dezember 2019 --- layout: true <div class="my-footer"> <span style="text-align:center"> <span> <img src="https://raw.githubusercontent.com/therbootcamp/therbootcamp.github.io/master/_sessions/_image/by-sa.png" height=14 style="vertical-align: middle"/> </span> <a href="https://therbootcamp.github.io/"> <span style="padding-left:82px"> <font color="#7E7E7E"> www.therbootcamp.com </font> </span> </a> <a href="https://therbootcamp.github.io/"> <font color="#7E7E7E"> Explorative Datenanalyse mit R @ CSS | Dezember 2019 </font> </a> </span> </div> --- # 10 grundlegende R Lektionen .pull-left4[ <b>Syntax</b> <ul> <li class="m1intro"><span><high>Der Assignment Operator <mono><-</mono></high></span></li> <li class="m2gintro"><span><mono><-</mono> kreiert/verändert Objekte</span></li> <li class="m3gintro"><span>Alles passiert durch Funktionen</span></li> <li class="m4gintro"><span>Funktionen haben (Default) Argumente</span></li> <li class="m5gintro"><span>Argumente erwarten Klassen</span></li> <li class="m6gintro"><span>Findet Hilfe mit <mono>?</mono></span></li> </ul> <b>Produktivität</b> <ul> <li class="m7gintro"><span>Funktionen leben in Paketen</span></li> <li class="m8gintro"><span>Lernt von Fehlern und Warnungen</span></li> <li class="m9gintro"><span>Benutzt R in RStudio</span></li> <li class="m10gintro"><span>Benutzt Projekte in Rstudio</span></li> </ul> ] .pull-right5[ <p align="center"> <img src="image/assignment.png"> </p> ] --- # 10 grundlegende R Lektionen .pull-left4[ <b>Syntax</b> <ul> <li class="m1gintro"><span>Der Assignment Operator <mono><-</mono></span></li> <li class="m2gintro"><span><mono><-</mono> kreiert/verändert Objekte</span></li> <li class="m3gintro"><span>Alles passiert durch Funktionen</span></li> <li class="m4gintro"><span>Funktionen haben (Default) Argumente</span></li> <li class="m5gintro"><span>Argumente erwarten Klassen</span></li> <li class="m6intro"><span><high>Findet Hilfe mit <mono>?</mono></high></span></li> </ul> <b>Produktivität</b> <ul> <li class="m7gintro"><span>Funktionen leben in Paketen</span></li> <li class="m8gintro"><span>Lernt von Fehlern und Warnungen</span></li> <li class="m9gintro"><span>Benutzt R in RStudio</span></li> <li class="m10gintro"><span>Benutzt Projekte in Rstudio</span></li> </ul> ] .pull-right5[ ```r ?mean ``` <p align="center"><img src="image/help_mean.png" width="500"></p> ] --- # 10 grundlegende R Lektionen .pull-left4[ <b>Syntax</b> <ul> <li class="m1gintro"><span>Der Assignment Operator <mono><-</mono></span></li> <li class="m2gintro"><span><mono><-</mono> kreiert/verändert Objekte</span></li> <li class="m3gintro"><span>Alles passiert durch Funktionen</span></li> <li class="m4gintro"><span>Funktionen haben (Default) Argumente</span></li> <li class="m5gintro"><span>Argumente erwarten Klassen</span></li> <li class="m6intro"><span><high>Findet Hilfe mit <mono>?</mono></high></span></li> </ul> <b>Produktivität</b> <ul> <li class="m7gintro"><span>Funktionen leben in Paketen</span></li> <li class="m8gintro"><span>Lernt von Fehlern und Warnungen</span></li> <li class="m9gintro"><span>Benutzt R in RStudio</span></li> <li class="m10gintro"><span>Benutzt Projekte in Rstudio</span></li> </ul> ] .pull-right5[ ```r ?mean ``` <p align="center"><img src="image/help_usage.png" width="500"></p> ] --- # 3 Klassen von Datenobjekten .pull-left4[ <high>`list`</high> - R's Mehrzweck-Container - <span>Kann alle Daten beinhalten, inkl. `list`s</span> - <span>Nützlich für komplexe Funktionsoutputs</span> <high>`data_frame`</high> - R's Tabelle - <span>Spezialfall einer `list`</span> - <span>R's `Tidy`-Format für Daten <high>`vector`</high> - R's Daten-Container - <span>Primärer Daten-Container</span> - <span>Beinhaltet daten von genau einem Klasse</span> ] .pull-right55[ <img src="image/main_objects.png"></img> ] --- # Datentypen ausserhalb von R <table class="tg" style="cellspacing:0; cellpadding:0; border:none;" width="95%"> <col width=30%> <col width=30%> <col width=30%> <tr> <td bgcolor = 'white' style='vertical-align:top'> <ul> <li class="m1"><span><high>Strukturierte Daten</high> <ul class="level"> <li><span>Delimiter getrennt: <mono>.csv</mono>, <mono>.txt</mono>, etc.</span></li> <li><span>Relationale Datenbanken: <mono>SQL</mono></span></li> </ul> <br><img src="image/structured.png" height=250px> </span></li> </ul> </td> <td bgcolor = 'white' style='vertical-align:top'> <ul> <li class="m2"><span><high>Semi-strukturierte Daten</high> <ul class="level"> <li><span>Markup: <mono>.xml</mono>, <mono>.xls</mono>, <mono>.html</mono> etc.</span></li> <li><span>Non markup: <mono>JSON</mono>, <mono>MongoDB</mono></span></li> </ul> <br><img src="image/html.png" height=250px> </span></li> </ul> </td> <td bgcolor = 'white' style='vertical-align:top'> <ul> <li class="m3"><span><high>Unstrukturierte Daten</high> <ul class="level"> <li><span>z.B. Text</span></li> </ul> <br><br><br><br><br2><img src="image/text.png" height=250px> </span></li> </ul> </td> </tr> </table> --- # Delimiter getrennte Daten .pull-left45[ <ul> <li class="m1"><span><high>Delimiter</high> separieren die Spalten.</span></li> <li class="m2"><span>Meist als <high>lokale Textdatei</high> vorliegend.</span></li> <li class="m3"><span><high>Datenklassen</high> werden inferiert.</span></li> </ul> <br> <p align="center"> <img src="image/readr.png" height=200> </p> ] .pull-right45[ ```r # Lese Basel Datensatz ein basel <- read_csv("1_Data/basel.csv") # Benutze expliziten Delimiter basel <- read_delim("1_Data/basel.csv", delim = ",") basel ``` ``` ## # A tibble: 10,000 x 20 ## id geschlecht alter groesse ## <dbl> <chr> <dbl> <dbl> ## 1 1 f 87 165 ## 2 2 m 54 175. ## 3 3 f 34 147. ## 4 4 m 31 166. ## 5 5 m 24 180. ## # … with 9,995 more rows, and 16 ## # more variables ``` ] --- # Das mächtige `tidyverse` Das [`tidyverse`](https://www.tidyverse.org/) ist im Kern eine Sammlung hoch-performanter, nutzerfreundlicher Pakete, die speziell für eine effizientere Datenanalyse entwickelt wurden. 1. `ggplot2` für Grafiken. 2. <high><mono>dplyr</mono> für Datenverarbeitung</high>. 3. <high><mono>tidyr</mono> für Datenverarbeitung</high>. 4. `readr` für Daten I/O. 5. `purrr` für funktionales Programmieren. 6. `tibble` für moderne `data.frame`s. <br><br> <table style="cellspacing:0; cellpadding:0; border:none;"> <col width="15%"> <col width="15%"> <col width="15%"> <col width="15%"> <col width="15%"> <col width="15%"> <tr> <td bgcolor="white"> <img src="image/hex-ggplot2.png" height=160px style="opacity:.2"></img> </td> <td bgcolor="white"> <img src="image/hex-dplyr.png"height=160px></img> </td> <td bgcolor="white"> <img src="image/hex-tidyr.png"height=160px></img> </td> <td bgcolor="white"> <img src="image/hex-readr.png"height=160px style="opacity:.2"></img> </td> <td bgcolor="white"> <img src="image/hex-purrr.png"height=160px style="opacity:.2"></img> </td> <td bgcolor="white"> <img src="image/hex-tibble.png"height=160px style="opacity:.2"></img> </td> </tr> </table> --- .pull-left45[ # Das ist Wrangling! <ul> <li class="m1"><span><high>Transformieren</high> <br><br> <ul class="level"> <li><span>Spaltennamen verändern</span></li> <li><span>Neue Variablen kreieren</span></li> </ul></span></li> <li class="m2"><span><high>Organisieren</high> <br><br> <ul class="level"> <li><span>Sortieren</span></li> <li><span>Datensätze zusammenführen</span></li> <li><span>Spalten zu Zeilen flippen</span></li> </ul></span></li> <li class="m3"><span><high>Aggregieren</high> <br><br> <ul class="level"> <li><span>Datengruppen bilden</span></li> <li><span>Statistiken für Gruppen berechnen</span></li> </ul></span></li> </ul> ] .pull-right5[ <br> <p align="center"> <img src="image/wrangling.png" height = "530px"> </p> ] --- # `%>%` .pull-left45[ Der präferierte Gebrauch von `dplyr` beinhaltet einen <high>neuen Operator</high>, die Pipe <high>`%>%`</high>. <br> <p align="center"> <img src="image/pipe.jpg" width = "300px"><br> <font style="font-size:10px">from <a href="https://upload.wikimedia.org/wikipedia/en/thumb/b/b9/MagrittePipe.jpg">wikimedia.org</a></font> </p> ] .pull-right45[ <p align="center"> <img src="image/pipe.png" height = "400px"> </p> ] --- class: middle, center <h1><a href=https://therbootcamp.github.io/EDA_2019CSS/index.html>Agenda</a></h1>