# Hausaufgaben zur 2. Vorlesung ###### tags: `Vl Datenanalyse 21/22` ## Aufgabe 1 Installieren Sie Tidyverse auf Ihrem Computer, mit `install.packages("tidyverse")` Wundern Sie sich nicht, wenn das eine Weile dauert, denn Tidyverse ist eine Sammlung recht vieler Pakete. Die Beispiel-Tabelle aus der Vorlesung finden Sie im Moodle. Die Datei heisst "nhanes.csv". Laden Sie sie herunter und sehen Sie sie sich in Excel oder einem anderen Tabellenkalulations-Programm an. Laden Sie die Tabelle in R. Verwenden Sie, wie in der Vorlesung, `library(tidyverse)`, dann `read_csv("nhanes.csv")`. Falls R die Datei nicht findet, müssen Sie entweder den Pfad in Argument zu `read_csv` mit angeben, oder (einfacher) Sie setzen das Arbeitsverzeichnis. Wählen Sie dazu in RStudio im Menü "Session", Menüpunkt "Choose working directory" den Unterpunkt "Choose directory" und navigieren Sie zu dem Ordner (= "directory" = "Verzeichnis"), indem Sie die Datei "nhanes.csv" gespeichert haben. Wenn sonst gar nichts klappt, können Sie auch das hier versuchen: ```{r} "https://papagei.zmbh.uni-heidelberg.de/simon/Vl2021/nhanes.csv" -> nhanes_url read_csv( url( nhanes_url ) ) -> nhanes ``` Falls Sie Probleme haben, fragen Sie bitte im Forum (oder schreiben Sie mir); es ist wichtig, dass Sie hier nicht aufgeben, denn sonst können Sie die eigentliche Übung nicht machen ## Aufgabe 2 Sehen Sie sich im Skript nochmal an, wie wir Plots gemacht haben. Erzeugen Sie ein Streudiagramm von Körpergröße gegen Alter, aber diesmal eingefärbt nach Ethnie statt nach Geschlecht. Erzeugen Sie das Diagramm zweimal, einmal nur mit Frauen und Mädchen, einmal nur mit Männern und Jungen. Hinweise: - Um die Tabelle auf nur die Männer und Jungen zu reduzieren, können Sie `filter` benutzen. In der Vorlesung haben wir `>=` (für "größer oder gleich") benutzt, dieses Mal brauchen Sie "gleich", also `==`. Denken Sie daran, ein dass man für Vergleiche `==` schreiben muss, nicht `=`. - Zeichenketten, die R wörtlich nehmen soll, also hier z.B. das Wort "male", müssen in Anführungszeichen stehen, Spaltennamen hingegen dürfen hier gerade nicht in Anführungszeichen stehen. So erkennt R, ob Sie das Wort "male" meinen oder eine Spalte mit Namen "male". Erkennen Sie einen Unterschied zwischen den Ethnien? ## Aufgabe 3 **(a)** Was geschieht, wenn Sie folgenden Code ausführen. Das ist derselbe Code wie in der Vorlesung, aber mit eine zusätzlichen Zeile ("`facet_grid`"). ``` nhanes %>% filter( age >= 18) %>% ggplot + geom_histogram( aes( height ) ) + facet_grid( ethnicity ~ gender, scales="free_y" ) ``` Was bewirkt die zusätzliche Zeile? Was ändert sich, wenn man das `scales="free_y"` weglässt. Beantworten Sie diese Fragen erst durch Ausprobieren, und lesen Sie dann im Web oder in der Online-Hilfe die Dokumentation zu ggplot2's `facet_grid`-Funktion. Die Dokumentation zu den einzelnen Funktionen ist allerdings oft recht komprimiert. Bessere Erklärungen zu den GGPlot-Funtionen finden Sie im "GGPlot-Buch", dem semi-offiziellen "Handbuch" oder "Lehrbuch" zu GGPlot. Sie können es auf Papier kaufen, oder kostenlos hier online lesen: https://ggplot2-book.org/ Werfen Sie einen Blick in Kapitel 17. Blättern Sie auch etwas durch die Einführenden Kapitel am Anfang. **(b)** Ist Ihnen aufgefallen, dass R bei jeder Benutzung von `geom_histogram` diesen Hinweis ausgibt? "`stat_bin()` using `bins = 30`. Pick better value with `binwidth`." Versuchen Sie mal, weniger oder mehr Bins (Balken im Histogramm) zu verwenden, indem Sie in `geom_histogram` nach dem `aes`-Block ein `bins=` einfügen. Welcher Wert für `bins` erscheint Ihnen am geeignetsten? ## Aufgabe 4 Verwenden Sie ihr in Aufgabe 3a neu erlangtes Wissen zu Faceting, um den Plot aus Aufgabe 2 etwas zu verschönern. ## Aufgabe 5 Schauen Sie sich nochmal an, wie wir in der Vorlesung `summerize` benutzt haben. Nutzen Sie das, um auszurechnen, was die durchschnittliche Körpergröße eines 10-jährigen Jungen und eines 10-jährigen Mädchens ist. Die Arbeitsfolge sollte sein: Filtern Sie erst die Tabelle auf nur die Probanden mit Alter 10 Jahre, gruppieren Sie nach Geschlecht, und summarisieren Sie dann, indem Sie die Mittelwert-Funktion auf die Körpergröße anwenden. Für jeden dieser drei Schitte brauchen Sie ein anderes Tidyverse-Verb. ## Forum Um mir einen Überblick zu geben, wie Sie voran kommen, **posten** Sie alle bitte Ihre Plots und auch die Ergebnisse von Aufgabe 5 im Forum "Hausaufgaben-Ergebnisse". Im Forum "Fragen zu Vorlesung und Hausaufgaben" können Sie Fragen stellen.