From f49f36a7078d0595e85beac687292b5538100b4d Mon Sep 17 00:00:00 2001 From: Tabea Wollenweber <3034261@stud.th-mannheim.de> Date: Mon, 19 Oct 2026 09:34:49 +0200 Subject: [PATCH] Testat 1 Aufgabe 2 --- Plot2.Rmd | 130 ++++++++ Plot2.html | 933 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1063 insertions(+) create mode 100644 Plot2.Rmd create mode 100644 Plot2.html diff --git a/Plot2.Rmd b/Plot2.Rmd new file mode 100644 index 0000000..7dc1321 --- /dev/null +++ b/Plot2.Rmd @@ -0,0 +1,130 @@ +--- +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") +``` diff --git a/Plot2.html b/Plot2.html new file mode 100644 index 0000000..44f222e --- /dev/null +++ b/Plot2.html @@ -0,0 +1,933 @@ + + + + + + + + + + + + + +Plot 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+

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,])
+ ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
regiongroupfertilityppgdplifeExpFpctUrbaninfantMortality
AfghanistanAsiaother5.968499.049.4923124.53500
AlbaniaEuropeother1.5253677.280.405316.56100
AlgeriaAfricaafrica2.1424473.075.006721.45800
American SamoaNANANANANANA11.29389
AngolaAfricaafrica5.1354321.953.175996.19100
AnguillaCaribbeanother2.00013750.181.10100NA
ArgentinaLatin Amerother2.1729162.179.899312.33700
ArmeniaAsiaother1.7353030.777.336424.27200
ArubaCaribbeanother1.67122851.577.754714.68700
AustraliaOceaniaoecd1.94957118.984.27894.45500
AustriaEuropeoecd1.34645158.883.55683.71300
AzerbaijanAsiaother2.1485637.673.665237.56600
BahamasCaribbeanother1.87722461.678.858414.13500
BahrainAsiaother2.43018184.176.06896.66300
BangladeshAsiaother2.157670.470.232941.78600
BarbadosCaribbeanother1.57514497.380.264512.28400
BelarusEuropeother1.4795702.076.37756.49400
BelgiumEuropeoecd1.83543814.882.81973.73900
BelizeLatin Amerother2.6794495.877.815316.20000
BeninAfricaafrica5.078741.158.664276.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)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Landrelation
Luxembourg45913
Norway28772
Singapore22851
Switzerland19607
Sweden19224
Iceland19095
Japan16925
Finland15991
Hong Kong15708
Denmark14264
+

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)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Landrelation
Central African Republic5
Ethiopia5
Afghanistan4
Malawi4
Niger4
Liberia3
Sierra Leone3
Burundi2
Democratic Republic of the Congo2
Somalia1
+
+
+
+

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, ])
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
distanceageSubjectSex
26.08M01Male
25.010M01Male
29.012M01Male
31.014M01Male
21.58M02Male
22.510M02Male
23.012M02Male
26.514M02Male
23.08M03Male
22.510M03Male
+
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")
+

+
+
+
+ + + + +
+ + + + + + + + + + + + + + +