<- "https://vincentarelbundock.github.io/Rdatasets/csv/AER/Affairs.csv" affairs_path
affairs-dplyr
datawrangling
eda
string
Aufgabe
Laden Sie den Datensatz affairs
:
<- read.csv(affairs_path) affairs
Lesen Sie das Data Dictionnary hier.
Wir definieren als “Halodrie” eine Person mit mindestens einer Affäre (laut Datensatz).
Bearbeiten Sie folgende Aufgaben:
- Filtern Sie mal nach Halodries!
- Sortieren Sie (absteigend) nach Anzahl der Affären!
- Wählen Sie die Spalten zu Anzahl der Affären, ob es Kinder in der Ehe gibt und die Zufriedenheit mit der Ehe. Dann sortieren Sie dann nach Anzahl der Kinder und danach nach der Anzahl der Affären.
- Berechnen Sie die mittlere Anzahl der Affären!
- Berechnen Sie die mittlere Anzahl der Affären pro Geschlecht und aufgeteilt auf Partnerschaften mit bzw. ohne Kinder.
- Geben Sie für jede Person die höhere der zwei Zahlen von Religiösität und Ehezufriedenheit aus!
- Berechnen Sie jeweils das Heiratsalter!
Lösung
library(tidyverse)
Ad 1.
%>%
affairs filter(affairs > 0) %>%
head(10)
rownames affairs gender age yearsmarried children religiousness education
1 6 3 male 27 1.5 no 3 18
2 12 3 female 27 4.0 yes 3 17
occupation rating
1 4 4
....
Hinweis: head(10)
begrenzt die Ausgabe auf 10 Zeilen, einfach um den Bildschirm nicht vollzumüllen.
Ad 2.
%>%
affairs arrange(-affairs) %>%
head(10)
rownames affairs gender age yearsmarried children religiousness education
1 53 12 female 32 10 yes 3 17
2 122 12 male 37 15 yes 4 14
occupation rating
1 5 2
2 5 2
[ reached 'max' / getOption("max.print") -- omitted 8 rows ]
Ad 3.
%>%
affairs select(affairs, rating, children) %>%
arrange(children, affairs) %>%
head(10)
affairs rating children
1 0 4 no
2 0 4 no
3 0 3 no
4 0 5 no
5 0 3 no
6 0 5 no
[ reached 'max' / getOption("max.print") -- omitted 4 rows ]
Ad 4.
%>%
affairs summarise(affairs_mean = mean(affairs)) %>%
head(10)
affairs_mean
1 1.455907
Ad 5.
%>%
affairs group_by(gender, children) %>%
summarise(affairs_mean = mean(affairs)) %>%
head(10)
# A tibble: 4 × 3
# Groups: gender [2]
gender children affairs_mean
<chr> <chr> <dbl>
1 female no 0.838
2 female yes 1.69
3 male no 1.01
4 male yes 1.66
Ad 6.
%>%
affairs rowwise() %>%
summarise(max(c(religiousness, rating))) %>%
head(10)
# A tibble: 10 × 1
`max(c(religiousness, rating))`
<int>
1 4
2 4
3 4
4 5
5 3
6 5
7 3
....
Ad 7.
%>%
affairs mutate(heiratsalter = age - yearsmarried) %>%
head(10)
rownames affairs gender age yearsmarried children religiousness education
1 4 0 male 37 10 no 3 18
occupation rating heiratsalter
1 7 4 27
[ reached 'max' / getOption("max.print") -- omitted 9 rows ]
Categories:
- datawrangling
- eda
- string