DS1 - VL8 - Quizze zur Datentransformation
Wintersemester 2022/2023
Zeilen- und Spaltenmanipulation
Quiz 1
Wir wollen uns die Verteilung der Kelchblattlänge bei der Art Iris versicolor anschauen:
<- iris |>
x filter(Species == 'versicolor')
hist(x$Sepal.Length)
Quiz 2
Gibt es eine Beziehung zwischen dem Längen/Breiten-Verhältnis bei Kron- und Kelchblättern der Art Iris setosa? Um dies grafisch untersuchen zu können, transformieren Sie den iris
Datensatz:
<- iris |>
x filter(Species == 'setosa') |>
mutate(
sepal_lw = Sepal.Length/Sepal.Width,
petal_lw = Petal.Length/Petal.Width
)
plot(x$sepal_lw, x$petal_lw,
pch = 20, col = "blue",
xlab="L/B Kelchblatt",
ylab="L/B Kronblatt"
)
Quiz 3
Erstellen Sie einen ‘tibble’ basierend auf dem iris
Datensatz, welcher nur die Spalte ‘Species’ enthält und eine neue (absteigend sortierte) Spalte mit dem Quotienten aus der Kelchblattlänge zu -breite. Der ‘tibble’ soll aber nur die Arten I. versicolor und I. virginica und Quotientenwerte größer 2 enthalten:
|>
iris mutate(sepal_lw = Sepal.Length/Sepal.Width) |>
filter(Species %in% c('versicolor', 'virginica'), sepal_lw > 2) |>
select(Species, sepal_lw) |>
arrange(desc(sepal_lw)) |>
as_tibble()
# A tibble: 79 × 2
Species sepal_lw
<fct> <dbl>
1 virginica 2.96
2 versicolor 2.82
3 virginica 2.75
4 versicolor 2.74
5 versicolor 2.73
6 virginica 2.73
7 virginica 2.68
8 virginica 2.64
9 virginica 2.57
10 virginica 2.53
# … with 69 more rows
Datenaggregation
Quiz 4
Berechnen Sie pro Art: Median, Mittelwert, Standardabweichung und Minimalwert für die Kronblattlänge:
|>
iris group_by(Species) |>
summarise(
pl_median = median(Petal.Length),
pl_mean = mean(Petal.Length),
pl_sd = sd(Petal.Length),
pl_min = min(Petal.Length)
)
# A tibble: 3 × 5
Species pl_median pl_mean pl_sd pl_min
<fct> <dbl> <dbl> <dbl> <dbl>
1 setosa 1.5 1.46 0.174 1
2 versicolor 4.35 4.26 0.470 3
3 virginica 5.55 5.55 0.552 4.5
Quiz 5
Berechnen Sie die Stichprobengröße (= Zeilenanzahl) pro Ernährungsgruppe im ChickWeight
Datensatz:
::glimpse(ChickWeight) # aehnlich wie die str() Funktion dplyr
Rows: 578
Columns: 4
$ weight <dbl> 42, 51, 59, 64, 76, 93, 106, 125, 149, 171, 199, 205, 40, 49, 5…
$ Time <dbl> 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21, 0, 2, 4, 6, 8, 10, 1…
$ Chick <ord> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, …
$ Diet <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
|>
ChickWeight group_by(Diet) |>
count()
# A tibble: 4 × 2
# Groups: Diet [4]
Diet n
<fct> <int>
1 1 220
2 2 120
3 3 120
4 4 118