DS1 - VL7 - Quizze zur Datenbereinigung
Wintersemester 2022/2023
Handling fehlender Werte
Der Datensatz
Gegeben sind folgende hydrografische Messungen der Ostsee-Station 1321 vom August 2015 :
sample1
station lat long depth pres temp psal doxy
1 1321 55 13.3 47 0.2 17.93 8.167 NA
2 1321 55 13.3 47 1.0 NA NA NA
3 1321 55 13.3 47 5.0 NA 8.328 4.60
4 1321 55 13.3 47 10.0 17.49 8.349 4.50
5 1321 55 13.3 47 15.0 17.44 NA 4.50
6 1321 55 13.3 47 20.0 17.04 8.340 4.50
7 1321 55 13.3 47 25.0 NA 8.303 4.60
8 1321 55 13.3 47 30.0 15.56 NA 4.60
9 1321 55 13.3 47 35.0 11.29 7.915 4.78
10 1321 55 13.3 47 40.0 NA 8.417 NA
11 1321 55 13.3 47 45.0 11.19 NA NA
pres = Druck, temp = Temperatur, psal = Salinität, doxy = gelöster Sauerstoff
Quiz 1 | Zeilen mit NAs entfernen
Entfernen Sie alle Zeilen, wo es fehlende Werte bei der Salinität gibt.
<- drop_na(sample1, psal)
sample1_mod1 5:8] sample1_mod1[ ,
pres temp psal doxy
1 0.2 17.93 8.167 NA
2 5.0 NA 8.328 4.60
3 10.0 17.49 8.349 4.50
4 20.0 17.04 8.340 4.50
5 25.0 NA 8.303 4.60
6 35.0 11.29 7.915 4.78
7 40.0 NA 8.417 NA
Quiz 2 | Fülle die NAs auf
Füllen Sie die NAs in allen 3 Parametern mit den jeweils vorherigen (ansonsten nachfolgenden) Werten auf.
<- fill(sample1, temp:doxy, .direction = 'downup')
sample1_mod2 5:8] sample1_mod2[ ,
pres temp psal doxy
1 0.2 17.93 8.167 4.60
2 1.0 17.93 8.167 4.60
3 5.0 17.93 8.328 4.60
4 10.0 17.49 8.349 4.50
5 15.0 17.44 8.349 4.50
6 20.0 17.04 8.340 4.50
7 25.0 17.04 8.303 4.60
8 30.0 15.56 8.303 4.60
9 35.0 11.29 7.915 4.78
10 40.0 11.29 8.417 4.78
11 45.0 11.19 8.417 4.78
Quiz 3 | NAs austauschen
Tauschen Sie die NAs mit dem Median des jeweiligen Parameters aus.
<- replace_na(sample1, list(
sample1_mod3 temp = median(sample1$temp, na.rm = TRUE),
psal = median(sample1$psal, na.rm = TRUE),
doxy = median(sample1$doxy, na.rm = TRUE) )
)5:8] sample1_mod3[ ,
pres temp psal doxy
1 0.2 17.93 8.167 4.60
2 1.0 17.04 8.328 4.60
3 5.0 17.04 8.328 4.60
4 10.0 17.49 8.349 4.50
5 15.0 17.44 8.328 4.50
6 20.0 17.04 8.340 4.50
7 25.0 17.04 8.303 4.60
8 30.0 15.56 8.328 4.60
9 35.0 11.29 7.915 4.78
10 40.0 17.04 8.417 4.60
11 45.0 11.19 8.328 4.60
Anpassung der Daten an ein standardisiertes Muster
Ein Vergleich
Warum sind pivot_longer()
und pivot_wider()
nicht perfekt symmetrisch? Begutachten Sie sorgfältig folgenden Datensatz (hier wieder ein tibble):
stocks
# A tibble: 9 × 3
year quarter stock_return
<dbl> <int> <dbl>
1 2014 2 1.07
2 2014 3 1.6
3 2014 4 1.3
4 2015 1 0.91
5 2015 2 0.69
6 2015 3 0.92
7 2015 4 0.94
8 2016 1 1.04
9 2016 2 1.04
Quiz 4: Formatänderung 1
Vervollständigen Sie den Code, um den Datensatz in folgendes Format zu bringen:
# A tibble: 3 × 5
year `2` `3` `4` `1`
<dbl> <dbl> <dbl> <dbl> <dbl>
1 2014 1.07 1.6 1.3 NA
2 2015 0.69 0.92 0.94 0.91
3 2016 1.04 NA NA 1.04
<- pivot_wider(
stocks_mod1
stocks, names_from = quarter,
values_from = stock_return
) stocks_mod1
# A tibble: 3 × 5
year `2` `3` `4` `1`
<dbl> <dbl> <dbl> <dbl> <dbl>
1 2014 1.07 1.6 1.3 NA
2 2015 0.69 0.92 0.94 0.91
3 2016 1.04 NA NA 1.04
Quiz 5: Formatänderung 2
Vervollständigen Sie den Code, um den Datensatz zurück ins ursprüngliche Format zu bringen.
<- pivot_longer(
stocks_mod2
stocks_mod1, cols = `1`:`2`,
names_to = 'quarter',
values_to = 'stock_return'
) stocks_mod2
# A tibble: 12 × 3
year quarter stock_return
<dbl> <chr> <dbl>
1 2014 1 NA
2 2014 4 1.3
3 2014 3 1.6
4 2014 2 1.07
5 2015 1 0.91
6 2015 4 0.94
7 2015 3 0.92
8 2015 2 0.69
9 2016 1 1.04
10 2016 4 NA
11 2016 3 NA
12 2016 2 1.04
Quiz 6: Unterschied
Zurück zur Eingangsfrage: Warum sind pivot_longer()
und pivot_wider()
nicht perfekt symmetrisch?
Quiz 7: Trennen von Spalten 1
Füllen Sie den Code aus, um die Spalten quarter
und year
(mit ‘/’ als Trennzeichen) zusammenzufügen und diese dann wieder zu trennen:
<- unite(stocks, quarter, year,
stocks1 col = 'time', sep = '/')
stocks1
# A tibble: 9 × 2
time stock_return
<chr> <dbl>
1 2/2014 1.07
2 3/2014 1.6
3 4/2014 1.3
4 1/2015 0.91
5 2/2015 0.69
6 3/2015 0.92
7 4/2015 0.94
8 1/2016 1.04
9 2/2016 1.04
<- separate(stocks1, time,
stocks2 into = c('quarter', 'year'))
stocks2
# A tibble: 9 × 3
quarter year stock_return
<chr> <chr> <dbl>
1 2 2014 1.07
2 3 2014 1.6
3 4 2014 1.3
4 1 2015 0.91
5 2 2015 0.69
6 3 2015 0.92
7 4 2015 0.94
8 1 2016 1.04
9 2 2016 1.04