Laden Sie die folgenden Packages und Data Frames:
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
urla = "https://www.phonetik.uni-muenchen.de/studium_lehre/"
urlb = "lehrmaterialien/R_speech_processing/Rdf"
url = paste0(urla, urlb)
rating <- read.table(file.path(url, "rating.txt"),
stringsAsFactors = T)
preasp <- read.table(file.path(url, "preasp.txt"),
stringsAsFactors = T)
asp <- read.table(file.path(url, "asp.txt"),
stringsAsFactors = T)
vdata <- read.table(file.path(url, "vdata.txt"),
stringsAsFactors = T)
vdata
zählen Sie, wie oft die Kombinationen der Vokal- (V
) und
Konsonantstufen (Kons
) vorkommen (d.h. wieviele
Beobachtungen, die sowohl einen A
als auch einen
P
haben, wieviele Beobachtungen die sowohl einen
A
und einen T
haben, wieviele Beobachtungen
die sowohl einen Y
und einen K
usw. für alle
möglichen Kombinationen von Vokalen und Konsonanten). (Ergebnis hat 21
Reihen und 3 Spalten).## `summarise()` has grouped output by 'V'. You can override using the `.groups`
## argument.
## # A tibble: 21 × 3
## V Cons count
## <fct> <fct> <int>
## 1 % K 142
## 2 % P 142
## 3 % T 142
## 4 A K 147
## 5 A P 141
## 6 A T 144
## 7 E K 144
## 8 E P 140
## 9 E T 141
## 10 I K 142
## # ℹ 11 more rows
asp
berechnen Sie getrennt für die Versuchspersonen dlm
und
hpt
den Dauermittelwert aller unbetonten (un
,
Faktor Bet
) und betonten (be
, Faktor
Bet
) /t/-Konsonanten (Ergebnis hat 4 Reihen und 3
Spalten).asp %>%
filter(Vpn %in% c("dlm", "hpt") & Kons == "t") %>%
group_by(Vpn, Bet) %>%
summarise(mean(d)) %>%
ungroup()
## `summarise()` has grouped output by 'Vpn'. You can override using the `.groups`
## argument.
## # A tibble: 4 × 3
## Vpn Bet `mean(d)`
## <fct> <fct> <dbl>
## 1 dlm be 57.6
## 2 dlm un 31.1
## 3 hpt be 50.0
## 4 hpt un 31.2
# oder
asp %>%
filter(Vpn %in% c("dlm", "hpt")) %>%
filter(Kons == "t") %>%
group_by(Vpn, Bet) %>%
summarise(mean(d)) %>%
ungroup()
## `summarise()` has grouped output by 'Vpn'. You can override using the `.groups`
## argument.
## # A tibble: 4 × 3
## Vpn Bet `mean(d)`
## <fct> <fct> <dbl>
## 1 dlm be 57.6
## 2 dlm un 31.1
## 3 hpt be 50.0
## 4 hpt un 31.2
cplace
) im Data Frame preasp
die
maximale, minimale und durchschnittliche Verschlussdauer
(clodur
), und sortieren Sie den erzeugten Data Frame nach
absteigender durchschnittlicher Verschlussdauer. (Ergebnis hat 3 Reihen
und 4 Spalten)preasp %>%
group_by(cplace) %>%
summarise(maxdur = max(clodur),
meandur = mean(clodur),
mindur = min(clodur)) %>%
ungroup() %>%
arrange(desc(meandur))
## # A tibble: 3 × 4
## cplace maxdur meandur mindur
## <fct> <dbl> <dbl> <dbl>
## 1 tt 0.328 0.199 0.0816
## 2 pp 0.279 0.181 0.111
## 3 kk 0.313 0.155 0.0373
preasp
, wo der Vokal (vtype
) “a”
und die Region (region
) ungleich “C” ist, die
Standardabweichung der Vokaldauer (vdur
) pro Region und
Stadt (city
). (Ergebnis hat 12 Zeilen und 3
Spalten)preasp %>%
filter(vtype == "a" & region != "C") %>%
group_by(region, city) %>%
summarise(vdursd = sd(vdur)) %>%
ungroup()
## `summarise()` has grouped output by 'region'. You can override using the
## `.groups` argument.
## # A tibble: 12 × 3
## region city vdursd
## <fct> <fct> <dbl>
## 1 N bergamo 0.0301
## 2 N genova 0.0219
## 3 N milano 0.0304
## 4 N parma 0.0342
## 5 N torino 0.0341
## 6 N venezia 0.0247
## 7 S bari 0.0206
## 8 S cagliari 0.0296
## 9 S Catanzaro 0.0408
## 10 S lecce 0.0279
## 11 S napoli 0.0316
## 12 S palermo 0.0272
Vpn
) das erste und dritte Quartil des Ratings
(Rating
) im Data Frame rating
. (Ergebnis hat
26 Zeilen und 3 Spalten)rating %>%
group_by(Vpn) %>%
summarise(Q1 = quantile(Rating, .25),
Q3 = quantile(Rating, .75)) %>%
ungroup()
## # A tibble: 26 × 3
## Vpn Q1 Q3
## <fct> <dbl> <dbl>
## 1 S1 5.65 6.83
## 2 S10 5.33 6.50
## 3 S11 5.54 6.58
## 4 S12 3.58 6.08
## 5 S13 5.54 6.58
## 6 S14 2.71 5.46
## 7 S15 5.25 6.12
## 8 S16 5.3 6
## 9 S17 6.53 7
## 10 S18 4.96 5.87
## # ℹ 16 more rows
rating
den Median und den
Mittelwert der Ratings (Rating
) pro Sprache
(Lang
). (Ergebnis hat 2 Zeilen und 3 Spalten)rating %>%
slice_head(n=100) %>%
group_by(Lang) %>%
summarise(rat.med = median(Rating),
rat.mean = mean(Rating)) %>%
ungroup()
## # A tibble: 2 × 3
## Lang rat.med rat.mean
## <fct> <dbl> <dbl>
## 1 E 6.5 6.36
## 2 S 6.33 6.29
Vpn
) im Data Frame
rating
gibt und bestätigen Sie, dass das Ergebnis davon hat
26 Zeilen und 2 Spalten hat.## [1] 26 2
spk
es pro Stadt (city
), Region
(region
), und Konsonant (cplace
) im Data Frame
preasp
gibt (Ergebnis hat 45 Zeilen und 4 Spalten). Lassen
Sie sich anschließend ausgeben, für welche Kombination(en) aus Stadt,
Region und Konsonant es die wenigsten einzigartigen Sprecher gibt. Tipp:
Hierfür müssen Sie sicherstellen, dass das Ergebnis des ersten Teils ein
ungruppierter Data Frame ist.df = preasp %>%
group_by(city, region, cplace) %>%
summarise(sprecher = n_distinct(spk)) %>%
ungroup() %>%
slice_min(sprecher, n = 1)
## `summarise()` has grouped output by 'city', 'region'. You can override using
## the `.groups` argument.