Laden Sie die folgenden Packages und Data Frames:
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.3 ✓ purrr 0.3.4
## ✓ tibble 3.1.0 ✓ dplyr 1.0.5
## ✓ tidyr 1.1.3 ✓ stringr 1.4.0
## ✓ readr 1.4.0 ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(magrittr)
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
<- "http://www.phonetik.uni-muenchen.de/~jmh/lehre/Rdf"
url <- read.table(file.path(url, "dip.txt"), stringsAsFactors = T)
dip <- read.table(file.path(url, "preasp.txt"), stringsAsFactors = T) preasp
V
im Data Frame dip
ein Faktor ist.class(dip$V)
## [1] "factor"
levels(dip$V)
## [1] "aI" "aU" "OY"
Vpn
im Data Frame dip
?length(unique(dip$Vpn))
## [1] 2
V
im Data Frame dip
anzeigen.table(dip$V)
##
## aI aU OY
## 118 44 24
table()
heraus, wie viele Tokens pro Vokalkategorie V
pro Versuchsperson Vpn
es im Data Frame dip
gibt.table(dip$V, dip$Vpn)
##
## 67 68
## aI 59 59
## aU 22 22
## OY 12 12
%>% select(V, Vpn) %>% table() dip
## Vpn
## V 67 68
## aI 59 59
## aU 22 22
## OY 12 12
dip
die Beobachtungen 1-10 ausgeben.%>% slice(1:10) dip
## d V Vpn
## 1 125.180 aI 67
## 2 119.690 aI 67
## 3 123.625 aI 67
## 4 116.940 aU 67
## 5 190.130 aI 67
## 6 146.063 aI 67
## 7 144.750 aU 67
## 8 93.130 OY 67
## 9 121.000 OY 67
## 10 121.940 aI 67
dip
die Beobachtungen 15, 18, 20 der Variable V
ausgeben.%>%
dip slice(15, 18, 20) %>%
select(V)
## V
## 15 aI
## 18 aI
## 20 aU
dip
die Variablen d
und V
für die zehn Beobachtungen mit den höchsten d
-Werten ausgeben.%>%
dip select(d, V) %>%
slice_max(d, n = 10)
## d V
## 120 284.650 aI
## 152 254.120 OY
## 109 251.078 aI
## 148 249.930 aI
## 143 234.940 aI
## 160 234.815 aI
## 186 231.570 aU
## 94 229.313 aI
## 163 229.060 aI
## 59 225.180 OY
dip
die letzten vier Beobachtungen ausgeben.%>% slice_tail(n = 4) dip
## d V Vpn
## 183 218.05 aU 68
## 184 169.07 aI 68
## 185 136.81 aI 68
## 186 231.57 aU 68
dip
alle ungeraden Zeilen ausgeben. Tipp: Mit der Funktion seq()
können Sie einen Vektor von ungeraden Ganzzahlen erzeugen.%>% slice(seq(1, nrow(dip), by = 2)) dip
## d V Vpn
## 1 125.180 aI 67
## 3 123.625 aI 67
## 5 190.130 aI 67
## 7 144.750 aU 67
## 9 121.000 OY 67
## 11 92.000 aU 67
## 13 134.570 OY 67
## 15 183.125 aI 67
## 17 93.620 aI 67
## 19 137.880 aU 67
## 21 91.560 aI 67
## 23 98.250 aI 67
## 25 65.810 aI 67
## 27 203.980 aI 67
## 29 108.125 OY 67
## 31 125.310 aI 67
## 33 117.565 OY 67
## 35 104.750 aI 67
## 37 105.130 aI 67
## 39 61.870 aI 67
## 41 122.010 aU 67
## 43 99.620 aI 67
## 45 120.130 aI 67
## 47 110.370 aU 67
## 49 106.180 aI 67
## 51 158.430 aI 67
## 53 95.625 aI 67
## 55 179.060 aI 67
## 57 117.060 aI 67
## 59 225.180 OY 67
## 61 125.880 aI 67
## 63 118.690 aU 67
## 65 146.940 aU 67
## 67 145.940 aI 67
## 69 121.815 aI 67
## 71 116.320 aI 67
## 73 164.690 OY 67
## 75 119.560 aI 67
## 77 130.940 OY 67
## 79 139.190 aU 67
## 81 143.630 aI 67
## 83 120.810 aI 67
## 85 109.310 aI 67
## 87 131.190 OY 67
## 89 98.320 aI 67
## 91 187.310 aI 67
## 93 158.070 aU 67
## 95 193.510 aI 68
## 97 162.940 aU 68
## 99 185.250 aI 68
## 101 167.500 OY 68
## 103 110.880 aI 68
## 105 212.500 aI 68
## 107 134.625 aI 68
## 109 251.078 aI 68
## 111 145.810 aI 68
## 113 97.938 aU 68
## 115 123.070 OY 68
## 117 183.625 aI 68
## 119 124.680 aI 68
## 121 149.440 aU 68
## 123 152.940 aU 68
## 125 108.880 aI 68
## 127 150.312 aI 68
## 129 149.876 aI 68
## 131 201.500 aI 68
## 133 173.812 aI 68
## 135 208.310 aI 68
## 137 180.810 OY 68
## 139 104.320 aI 68
## 141 172.690 aI 68
## 143 234.940 aI 68
## 145 174.060 aU 68
## 147 164.750 aU 68
## 149 160.253 aI 68
## 151 150.688 aI 68
## 153 124.375 aI 68
## 155 203.680 aU 68
## 157 116.500 aI 68
## 159 202.500 aU 68
## 161 109.560 aI 68
## 163 229.060 aI 68
## 165 192.000 aI 68
## 167 176.620 aU 68
## 169 138.810 aU 68
## 171 129.570 aI 68
## 173 154.690 aU 68
## 175 134.750 aI 68
## 177 162.810 OY 68
## 179 164.940 aI 68
## 181 119.120 aU 68
## 183 218.050 aU 68
## 185 136.810 aI 68
dip
ausgeben, wo die Versuchsperson Vpn
67 ist und d
höher als 190. (Ergebnis hat 5 Zeilen und 3 Spalten)%>% filter(Vpn == 67 & d > 190) dip
## d V Vpn
## 5 190.13 aI 67
## 27 203.98 aI 67
## 59 225.18 OY 67
## 70 205.25 aI 67
## 86 200.18 aI 67
d
-Werten aus dip
ausgeben, wo der Vokal V
nicht “aU” und nicht “OY” ist.%>%
dip filter(!V %in% c("aU", "OY")) %>%
slice_min(d, n = 5)
## d V Vpn
## 26 51.310 aI 67
## 39 61.870 aI 67
## 78 63.120 aI 67
## 25 65.810 aI 67
## 64 70.937 aI 67
d
aus dem Data Frame dip
als Vektor ausgeben.%>% pull(d) dip
## [1] 125.180 119.690 123.625 116.940 190.130 146.063 144.750 93.130 121.000
## [10] 121.940 92.000 164.000 134.570 93.624 183.125 172.372 93.620 93.680
## [19] 137.880 77.499 91.560 128.690 98.250 111.313 65.810 51.310 203.980
## [28] 80.375 108.125 86.870 125.310 111.250 117.565 78.062 104.750 112.437
## [37] 105.130 83.500 61.870 175.250 122.010 151.240 99.620 160.620 120.130
## [46] 99.000 110.370 152.933 106.180 189.810 158.430 146.000 95.625 101.310
## [55] 179.060 110.810 117.060 127.060 225.180 94.438 125.880 151.630 118.690
## [64] 70.937 146.940 155.990 145.940 95.810 121.815 205.250 116.320 174.260
## [73] 164.690 141.930 119.560 119.750 130.940 63.120 139.190 131.500 143.630
## [82] 100.190 120.810 75.310 109.310 200.180 131.190 80.310 98.320 178.370
## [91] 187.310 93.440 158.070 229.313 193.510 183.812 162.940 217.190 185.250
## [100] 182.690 167.500 182.001 110.880 113.560 212.500 157.500 134.625 200.062
## [109] 251.078 167.880 145.810 175.130 97.938 108.128 123.070 143.750 183.625
## [118] 115.620 124.680 284.650 149.440 202.938 152.940 171.630 108.880 179.000
## [127] 150.312 177.620 149.876 160.060 201.500 123.060 173.812 136.880 208.310
## [136] 138.760 180.810 177.000 104.320 173.760 172.690 158.690 234.940 147.680
## [145] 174.060 159.126 164.750 249.930 160.253 178.310 150.688 254.120 124.375
## [154] 164.500 203.680 145.070 116.500 113.130 202.500 234.815 109.560 186.251
## [163] 229.060 206.000 192.000 190.125 176.620 191.188 138.810 178.440 129.570
## [172] 182.680 154.690 170.068 134.750 151.501 162.810 184.630 164.940 168.870
## [181] 119.120 132.560 218.050 169.070 136.810 231.570
preasp
die ersten drei Beobachtungen für alle Variablen ausgeben, deren Spaltennamen auf “dur” endet.%>%
preasp select(ends_with("dur")) %>%
slice_head(n = 3)
## vdur predur clodur reldur
## 1 0.11712536 0.04980133 0.2241060 0.02582291
## 2 0.13022264 0.00000000 0.1491259 0.05390937
## 3 0.09848237 0.00000000 0.1723442 0.03659818
preasp
die erste Beobachtung der Variablen spk
bis vc
ausgeben.%>%
preasp select(spk:vc) %>%
slice(1)
## spk city region vdur predur clodur reldur clorel
## 1 LTp1A01B bari S 0.1171254 0.04980133 0.224106 0.02582291 0.2499289
## preclorel vc
## 1 0.2997303 0.4168556
dip
dauerhaft um in Dauer
, Vokal
, Versuchsperson
.%<>% rename(Dauer=d, Vokal=V, Versuchsperson=Vpn) dip
dip
temporär eine Spalte namens Index
an, die die Zahlen von 1 bis 186 enthält.%>% mutate(Index = 1:186) dip
## Dauer Vokal Versuchsperson Index
## 1 125.180 aI 67 1
## 2 119.690 aI 67 2
## 3 123.625 aI 67 3
## 4 116.940 aU 67 4
## 5 190.130 aI 67 5
## 6 146.063 aI 67 6
## 7 144.750 aU 67 7
## 8 93.130 OY 67 8
## 9 121.000 OY 67 9
## 10 121.940 aI 67 10
## 11 92.000 aU 67 11
## 12 164.000 aI 67 12
## 13 134.570 OY 67 13
## 14 93.624 aI 67 14
## 15 183.125 aI 67 15
## 16 172.372 aI 67 16
## 17 93.620 aI 67 17
## 18 93.680 aI 67 18
## 19 137.880 aU 67 19
## 20 77.499 aU 67 20
## 21 91.560 aI 67 21
## 22 128.690 OY 67 22
## 23 98.250 aI 67 23
## 24 111.313 aI 67 24
## 25 65.810 aI 67 25
## 26 51.310 aI 67 26
## 27 203.980 aI 67 27
## 28 80.375 aU 67 28
## 29 108.125 OY 67 29
## 30 86.870 aU 67 30
## 31 125.310 aI 67 31
## 32 111.250 aI 67 32
## 33 117.565 OY 67 33
## 34 78.062 aI 67 34
## 35 104.750 aI 67 35
## 36 112.437 aI 67 36
## 37 105.130 aI 67 37
## 38 83.500 aI 67 38
## 39 61.870 aI 67 39
## 40 175.250 aI 67 40
## 41 122.010 aU 67 41
## 42 151.240 aI 67 42
## 43 99.620 aI 67 43
## 44 160.620 OY 67 44
## 45 120.130 aI 67 45
## 46 99.000 aI 67 46
## 47 110.370 aU 67 47
## 48 152.933 aI 67 48
## 49 106.180 aI 67 49
## 50 189.810 aI 67 50
## 51 158.430 aI 67 51
## 52 146.000 aU 67 52
## 53 95.625 aI 67 53
## 54 101.310 aU 67 54
## 55 179.060 aI 67 55
## 56 110.810 aI 67 56
## 57 117.060 aI 67 57
## 58 127.060 aI 67 58
## 59 225.180 OY 67 59
## 60 94.438 aI 67 60
## 61 125.880 aI 67 61
## 62 151.630 aU 67 62
## 63 118.690 aU 67 63
## 64 70.937 aI 67 64
## 65 146.940 aU 67 65
## 66 155.990 aU 67 66
## 67 145.940 aI 67 67
## 68 95.810 aI 67 68
## 69 121.815 aI 67 69
## 70 205.250 aI 67 70
## 71 116.320 aI 67 71
## 72 174.260 aI 67 72
## 73 164.690 OY 67 73
## 74 141.930 aU 67 74
## 75 119.560 aI 67 75
## 76 119.750 aU 67 76
## 77 130.940 OY 67 77
## 78 63.120 aI 67 78
## 79 139.190 aU 67 79
## 80 131.500 aU 67 80
## 81 143.630 aI 67 81
## 82 100.190 aI 67 82
## 83 120.810 aI 67 83
## 84 75.310 OY 67 84
## 85 109.310 aI 67 85
## 86 200.180 aI 67 86
## 87 131.190 OY 67 87
## 88 80.310 aU 67 88
## 89 98.320 aI 67 89
## 90 178.370 aU 67 90
## 91 187.310 aI 67 91
## 92 93.440 aI 67 92
## 93 158.070 aU 67 93
## 94 229.313 aI 68 94
## 95 193.510 aI 68 95
## 96 183.812 aI 68 96
## 97 162.940 aU 68 97
## 98 217.190 aI 68 98
## 99 185.250 aI 68 99
## 100 182.690 aU 68 100
## 101 167.500 OY 68 101
## 102 182.001 OY 68 102
## 103 110.880 aI 68 103
## 104 113.560 aU 68 104
## 105 212.500 aI 68 105
## 106 157.500 OY 68 106
## 107 134.625 aI 68 107
## 108 200.062 aI 68 108
## 109 251.078 aI 68 109
## 110 167.880 aI 68 110
## 111 145.810 aI 68 111
## 112 175.130 aU 68 112
## 113 97.938 aU 68 113
## 114 108.128 aI 68 114
## 115 123.070 OY 68 115
## 116 143.750 aI 68 116
## 117 183.625 aI 68 117
## 118 115.620 aI 68 118
## 119 124.680 aI 68 119
## 120 284.650 aI 68 120
## 121 149.440 aU 68 121
## 122 202.938 OY 68 122
## 123 152.940 aU 68 123
## 124 171.630 aI 68 124
## 125 108.880 aI 68 125
## 126 179.000 OY 68 126
## 127 150.312 aI 68 127
## 128 177.620 aI 68 128
## 129 149.876 aI 68 129
## 130 160.060 aI 68 130
## 131 201.500 aI 68 131
## 132 123.060 aI 68 132
## 133 173.812 aI 68 133
## 134 136.880 aU 68 134
## 135 208.310 aI 68 135
## 136 138.760 aI 68 136
## 137 180.810 OY 68 137
## 138 177.000 aI 68 138
## 139 104.320 aI 68 139
## 140 173.760 aU 68 140
## 141 172.690 aI 68 141
## 142 158.690 aI 68 142
## 143 234.940 aI 68 143
## 144 147.680 aI 68 144
## 145 174.060 aU 68 145
## 146 159.126 aI 68 146
## 147 164.750 aU 68 147
## 148 249.930 aI 68 148
## 149 160.253 aI 68 149
## 150 178.310 aI 68 150
## 151 150.688 aI 68 151
## 152 254.120 OY 68 152
## 153 124.375 aI 68 153
## 154 164.500 aI 68 154
## 155 203.680 aU 68 155
## 156 145.070 aU 68 156
## 157 116.500 aI 68 157
## 158 113.130 aU 68 158
## 159 202.500 aU 68 159
## 160 234.815 aI 68 160
## 161 109.560 aI 68 161
## 162 186.251 aI 68 162
## 163 229.060 aI 68 163
## 164 206.000 aI 68 164
## 165 192.000 aI 68 165
## 166 190.125 OY 68 166
## 167 176.620 aU 68 167
## 168 191.188 aI 68 168
## 169 138.810 aU 68 169
## 170 178.440 OY 68 170
## 171 129.570 aI 68 171
## 172 182.680 aU 68 172
## 173 154.690 aU 68 173
## 174 170.068 aI 68 174
## 175 134.750 aI 68 175
## 176 151.501 aI 68 176
## 177 162.810 OY 68 177
## 178 184.630 aI 68 178
## 179 164.940 aI 68 179
## 180 168.870 OY 68 180
## 181 119.120 aU 68 181
## 182 132.560 aI 68 182
## 183 218.050 aU 68 183
## 184 169.070 aI 68 184
## 185 136.810 aI 68 185
## 186 231.570 aU 68 186
dip
dauerhaft eine Spalte namens Länge
an, die den Wert “lang” enthält, wenn die Dauer höher ist als 200, “kurz” für Dauerwerte unter 100, und “mittel” für alle anderen Dauerwerte.%<>% mutate(Länge = case_when(Dauer > 200 ~ "lang",
dip < 100 ~ "kurz",
Dauer > 100 & Dauer < 200 ~ "mittel"))
Dauer %>% head() dip
## Dauer Vokal Versuchsperson Länge
## 1 125.180 aI 67 mittel
## 2 119.690 aI 67 mittel
## 3 123.625 aI 67 mittel
## 4 116.940 aU 67 mittel
## 5 190.130 aI 67 mittel
## 6 146.063 aI 67 mittel
dip
dauerhaft eine Spalte namens Region
an, die den Wert “Bayern” enthält für die Versuchsperson 67 und “Berlin” für die Versuchsperson 68.%<>% mutate(Region = ifelse(Versuchsperson == 67, "Bayern", "Berlin"))
dip %>% head() dip
## Dauer Vokal Versuchsperson Länge Region
## 1 125.180 aI 67 mittel Bayern
## 2 119.690 aI 67 mittel Bayern
## 3 123.625 aI 67 mittel Bayern
## 4 116.940 aU 67 mittel Bayern
## 5 190.130 aI 67 mittel Bayern
## 6 146.063 aI 67 mittel Bayern