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.

# Ihre Lösung:
library(dplyr)
## 
## Attache Paket: 'dplyr'
## Die folgenden Objekte sind maskiert von 'package:stats':
## 
##     filter, lag
## Die folgenden Objekte sind maskiert von 'package:base':
## 
##     intersect, setdiff, setequal, union
library(knitr)

un = carData::UN
kable(un[1:20,])
region group fertility ppgdp lifeExpF pctUrban infantMortality
Afghanistan Asia other 5.968 499.0 49.49 23 124.53500
Albania Europe other 1.525 3677.2 80.40 53 16.56100
Algeria Africa africa 2.142 4473.0 75.00 67 21.45800
American Samoa NA NA NA NA NA NA 11.29389
Angola Africa africa 5.135 4321.9 53.17 59 96.19100
Anguilla Caribbean other 2.000 13750.1 81.10 100 NA
Argentina Latin Amer other 2.172 9162.1 79.89 93 12.33700
Armenia Asia other 1.735 3030.7 77.33 64 24.27200
Aruba Caribbean other 1.671 22851.5 77.75 47 14.68700
Australia Oceania oecd 1.949 57118.9 84.27 89 4.45500
Austria Europe oecd 1.346 45158.8 83.55 68 3.71300
Azerbaijan Asia other 2.148 5637.6 73.66 52 37.56600
Bahamas Caribbean other 1.877 22461.6 78.85 84 14.13500
Bahrain Asia other 2.430 18184.1 76.06 89 6.66300
Bangladesh Asia other 2.157 670.4 70.23 29 41.78600
Barbados Caribbean other 1.575 14497.3 80.26 45 12.28400
Belarus Europe other 1.479 5702.0 76.37 75 6.49400
Belgium Europe oecd 1.835 43814.8 82.81 97 3.73900
Belize Latin Amer other 2.679 4495.8 77.81 53 16.20000
Benin Africa africa 5.078 741.1 58.66 42 76.67400
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:

# 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)
Land relation
Luxembourg 45913
Norway 28772
Singapore 22851
Switzerland 19607
Sweden 19224
Iceland 19095
Japan 16925
Finland 15991
Hong Kong 15708
Denmark 14264

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:

# Ihre Lösung:
bottom10 = werte |>
  slice_min(order_by = relation, n=10, with_ties = FALSE) |>
  arrange(desc(relation))

kable(bottom10)
Land relation
Central African Republic 5
Ethiopia 5
Afghanistan 4
Malawi 4
Niger 4
Liberia 3
Sierra Leone 3
Burundi 2
Democratic Republic of the Congo 2
Somalia 1

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).

# Ihre Lösung:
orthodont = nlme::Orthodont

kable(orthodont[1:10, ])
distance age Subject Sex
26.0 8 M01 Male
25.0 10 M01 Male
29.0 12 M01 Male
31.0 14 M01 Male
21.5 8 M02 Male
22.5 10 M02 Male
23.0 12 M02 Male
26.5 14 M02 Male
23.0 8 M03 Male
22.5 10 M03 Male
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.

# 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")