Daten & Packages laden

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
url <- "http://www.phonetik.uni-muenchen.de/~jmh/lehre/Rdf"
dip <- read.table(file.path(url, "dip.txt"), stringsAsFactors = T)
preasp <- read.table(file.path(url, "preasp.txt"), stringsAsFactors = T)

Q & A’s

1. Basics

  • Q1.1: Bestätigen Sie, dass die Variable V im Data Frame dip ein Faktor ist.
class(dip$V)
## [1] "factor"
  • Q1.2: Was sind die Stufen von diesem Faktor?
levels(dip$V)
## [1] "aI" "aU" "OY"
  • Q1.3: Wieviele einzigartige Elemente gibt es in der Variable Vpn im Data Frame dip?
length(unique(dip$Vpn))
## [1] 2
  • Q1.4: Lassen Sie sich mittels einer Funktion die Vorkommenshäufigkeit der verschiedenen Vokale V im Data Frame dip anzeigen.
table(dip$V)
## 
##  aI  aU  OY 
## 118  44  24
  • Q1.5: Finden Sie mittels 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
dip %>% select(V, Vpn) %>% table()
##     Vpn
## V    67 68
##   aI 59 59
##   aU 22 22
##   OY 12 12

2. Filtering & Selecting

  • Q2.1: Lassen Sie sich vom Data Frame dip die Beobachtungen 1-10 ausgeben.
dip %>% slice(1:10)
##          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
  • Q2.2: Lassen Sie sich vom Data Frame dip die Beobachtungen 15, 18, 20 der Variable V ausgeben.
dip %>% 
  slice(15, 18, 20) %>% 
  select(V)
##     V
## 15 aI
## 18 aI
## 20 aU
  • Q2.3: Lassen Sie sich vom Data Frame 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
  • Q2.4: Lassen Sie sich vom Data Frame dip die letzten vier Beobachtungen ausgeben.
dip %>% slice_tail(n = 4)
##          d  V Vpn
## 183 218.05 aU  68
## 184 169.07 aI  68
## 185 136.81 aI  68
## 186 231.57 aU  68
  • Q2.5: Lassen Sie sich vom Data Frame dip alle ungeraden Zeilen ausgeben. Tipp: Mit der Funktion seq() können Sie einen Vektor von ungeraden Ganzzahlen erzeugen.
dip %>% slice(seq(1, nrow(dip), by = 2))
##           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
  • Q2.6: Lassen Sie sich alle Beobachtungen aus dip ausgeben, wo die Versuchsperson Vpn 67 ist und d höher als 190. (Ergebnis hat 5 Zeilen und 3 Spalten)
dip %>% filter(Vpn == 67 & d > 190)
##         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
  • Q2.7: Lassen Sie sich die fünf Beobachtungen mit den niedrigsten 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
  • Q2.8: Lassen Sie sich die Variable d aus dem Data Frame dip als Vektor ausgeben.
dip %>% pull(d)
##   [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
  • Q2.9: Lassen Sie sich aus dem Data Frame 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
  • Q2.10: Lassen Sie sich aus dem Data Frame 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

3. Mutating & Renaming

  • Q3.1: Benennen Sie die Variablen im Data Frame dip dauerhaft um in Dauer, Vokal, Versuchsperson.
dip %<>% rename(Dauer=d, Vokal=V, Versuchsperson=Vpn)
  • Q3.2: Hängen Sie an den Data Frame dip temporär eine Spalte namens Index an, die die Zahlen von 1 bis 186 enthält.
dip %>% mutate(Index = 1:186)
##       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
  • Q3.3: Hängen Sie an den Data Frame 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.
dip %<>% mutate(Länge = case_when(Dauer > 200 ~ "lang",
                                  Dauer < 100 ~ "kurz",
                                  Dauer > 100 & Dauer < 200 ~ "mittel"))
dip %>% head()
##     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
  • Q3.4: Hängen Sie an den Data Frame 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.
dip %<>% mutate(Region = ifelse(Versuchsperson == 67, "Bayern", "Berlin"))
dip %>% head()
##     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