---
title: "Plot 2"
output: html_document
---
# Visualisierung von Datensätzen
In diesem Abschnitt sollen alle Graphiken mit _ggplot_ und alle Tabellen mit `kable` erstellt werden.
## Säuglingssterblichkeit und Wirtschaftsleistung
Nutzen Sie den Datensatz `carData::UN`. In der Hilfe finden Sie Hinweise, was dort gezeigt ist. Beachten Sie, dass für einige Länder Werte fehlen (`NA`); diese Länder sollen nicht berücksichtigt werden.
### Wirtschaftsleistung vs. Säuglingssterblichkeit
Erzeugen Sie diese Graphik, indem Sie den nachfolgenden Chunk vervollständigen. Die gezeigten Länder sind Germany, United States, China, India, Afghanistan, Sierra Leone, Japan, Cuba.
Tipp: Sie dürfen (und sollen) weitere Libraries nutzen, wenn diese hilfreich sind.
```{r}
# Ihre Lösung:
library(dplyr)
library(knitr)
un = carData::UN
kable(un[1:20,])
```
```{r}
library(ggplot2)
library(ggrepel)
# Nur Länder ohne NA Werte
un = un[complete.cases(un[, c("ppgdp", "infantMortality")]), ]
markierte_laender = c(
"Germany", "United States", "China", "India",
"Afghanistan", "Sierra Leone", "Japan", "Cuba"
)
labeldaten = un[rownames(un) %in% markierte_laender, ]
ggplot(un, aes(x = ppgdp, y = infantMortality)) +
geom_point() +
geom_text_repel(
data = labeldaten,
color="blue",
aes(label = rownames(labeldaten))) +
scale_x_log10() +
scale_y_log10() +
labs(
title= "BIP in Abhängigkeit der Säuglingssterblichkeit",
x = "BIP pro Kopf (US-Dollar)",
y = "Säuglingssterblichkeit (pro 1000 Lebendgeburten"
)
```
### Säuglingssterblichkeit im Verhältnis zur Wirtschaftsleistung
Geben Sie diejenigen 10 Länder als Tabelle im Notebook aus, die das größte Verhältnis $r$ von Säuglingssterblichkeit zu Wirtschaftsleistung haben. Dabei ist $r$ die Säuglingssterblichkeit (pro 1000 Lebendgeburten) je 1000 US-Dollar BIP pro Kopf. Die Liste soll nach $r$ absteigend sortiert sein und den Ländernamen und $r$ enthalten.
Vervollständigen Sie diesen Chunk:
```{r}
# Ihre Lösung:
library(tibble)
library(dplyr)
relation = function(ppgdp, infantMortality) ppgdp / infantMortality
un_r = un |> mutate(relation = round(relation(ppgdp, infantMortality)))
werte = tibble(
Land = rownames(un_r),
relation = un_r$relation) |> filter(!is.na(relation)) # Filter eigentlich nicht nötig
top10 = werte |>
slice_max(order_by = relation, n=10, with_ties = FALSE) |>
arrange(desc(relation))
kable(top10)
```
Geben Sie nun -- wie eben -- diejenigen 10 Länder als Tabelle aus, die das **kleinste** Verhältnis $r$ haben. Die Liste soll nach $r$ absteigend sortiert sein.
Vervollständigen Sie diesen Chunk:
```{r}
# Ihre Lösung:
bottom10 = werte |>
slice_min(order_by = relation, n=10, with_ties = FALSE) |>
arrange(desc(relation))
kable(bottom10)
```
## Kieferwachstum bei Kindern
Nutzen Sie den Datensatz `nlme::Orthodont`. In der Hilfe finden Sie Hinweise, was dort gezeigt ist.
### Überblick über Verlauf bei allen Kindern
Plotten Sie im folgenden Chunk den Verlauf des Abstands zwischen Hypophyse und Fossa pterygopalatina (_y_-Achse) in Abhängigkeit vom Alter (_x_-Achse). Dies soll in einem Diagramm mit Unterdiagrammen erfolgen: ein Unterdiagramm zeigt den Verlauf für je ein Kind (Subject) und dessen Geschlecht (Male oder Female).
```{r}
# Ihre Lösung:
orthodont = nlme::Orthodont
kable(orthodont[1:10, ])
```
```{r}
ggplot(orthodont) +
geom_line(aes(x=age, y=distance, group=Subject)) +
geom_point(aes(x=age, y=distance, group=Subject)) +
facet_wrap(~ Subject + Sex) +
labs(title="Überblick des Abstandsverlaufs pro Kind", x="Alter", y="Abstand Hypophyse und Fossa Pterygopalatina")
```
### Boxplots des Abstands je Alter
Erzeugen Sie ein Diagramm, das in zwei Unterdiagrammen für die Jungen und die Mädchen Boxplots erstellt. Die Boxplots geben die Verteilung des Abstands je Alter an. In Anlehnung an das obige Diagramm sollen die Boxplots vertikal ausgerichtet sein.
```{r}
# Ihre Lösung:
ggplot(orthodont) +
geom_boxplot(aes(x=age, y=distance, group=age, fill=age)) +
facet_wrap(~ Sex) +
labs(title="Boxplot des Abstands je Alter", x="Alter", y="Abstand Hypophyse und Fossa Pterygopalatina")
```