DS1 - VL8 - Quizze zur Datentransformation

Wintersemester 2022/2023

Autor
Saskia Otto

Universität Hamburg, IMF

Zeilen- und Spaltenmanipulation

Quiz 1

Wir wollen uns die Verteilung der Kelchblattlänge bei der Art Iris versicolor anschauen:

x <- iris |>
  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:

x <- iris |>
  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:

dplyr::glimpse(ChickWeight) # aehnlich wie die str() Funktion
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