-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuebungen.qmd
71 lines (45 loc) · 4.36 KB
/
uebungen.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
title: "Übungsaufgaben"
format: html
---
<span style="color:brown">*Für die Hausaufgabe, siehe [unten](#hausaufgabe-zum-18.1.)*</span>
## NYC flights
Das Paket `nycflights13` enthält die Tabelle `flights` mit Daten zu allen Linien-Flügen, die im Jahr 2013 in New York gestartet sind.
- Installieren Sie das Paket `nycflights13`. Sehen Sie sich die Tabelle `flights` an und lesen Sie die Hilfe-Seite zur Tabelle.
- Filtern Sie die Tabelle so, dass Sie nur noch die Flüge sehen, die am John-F.-Kennedy-Flughafen (JFK) gestartet sind. Wie viele Flüge sind das? Wie viele entfallen auf jede der gelisteten Fluglinien?
- Sortieren Sie die Tabelle von eben nach der Anzahl der Flüge. Ergänzen Sie den Code der Fluglinien durch deren Namen. Die Zuordnung der Namen zu den Codes finden Sie in der Tabelle `airlines`, die auch im Paket `nycflight` enthalten ist.
- In der Tabelle ist auch angegeben, mit wie viel Verspätung die Flüge an ihrem jeweiligen Ziel gelandet sind. Berechnen Sie für jeden Monat die durchschnittliche Verspätung aller Flüge, die in diesem Monat gelandet sind. Stellen Sie das Ergebnis als Säulendiagramm dar.
- Falls Ihr Diagramm bisher die Monate nur durchnummerisert, beschriften Sie die Spalten nun mit den Monatsnamen.
- Haben Sie bemerkt, dass die Verspätung oft negativ ist (nämlich wenn der Flug früher als geplant gelandet ist)? Berechnen Sie die mittlere Verspätung nochmals, werten Sie aber dieses Mal alle verfrüht gelandeten Flüge mit Verspätung 0 Minuten.
- Wecher Anteil der ankommenden Flüge hat mehr als 30 Minuten Verspätung? Berechen Sie dies für jede Fluggesellschaft. Sortieren Sie die Fluggesellschaften nach Pünktlichkeit.
- Ändert sich die Pünktlichkeit der Fluggesellschaften im Laufe des Jahres? Bestimmen Sie für jede FLuggesellschaft und jeden Monat den Anteil der in JFK gelandeten Flüge, die mindestens 30 Minuten verspätet gelandet sind. Stellen Sie die Daten in einer übersichtlichen Tabelle dar mit einer Zeile für jede Fluggesellschaft (mit Namen, nicht nur mit Code) und eienr Spalte für jeden Monat.
- Zu welchen Tageszeiten ist es am Flughafen JFK am ruhigsten und wann ist viel los? Überlegen Sie sich einen geeigneten Plot und erzeugen Sie ihn.
- Überlegen Sie sich eine weitere Frage, die Sie mit der Tabelle visualisieren können.
## Hausarbeit vom letzten Jahr
[siehe hier](https://hackmd.io/yvseZ1iER52j1_F3qq5Ejg)
## Hausaufgabe zum 18.1.
In den Präsenzübungen in den letzten Wochen haben wir die obige Aufgabe bis zur Teilaufgabe zur negativen Verspätung gemeinsam bearbeitet.
Als Hausaufgabe bearbeiten Sie bitte, unter Verwendung dessen, was wir uns in der Präsenzübung bereits erarbeitet haben, folgende Aufgabe in einem Quarto-Notebook und laden Sie dieses als HTML-Datei auf Moodle hoch ([hier](https://moodle.uni-heidelberg.de/mod/assign/view.php?id=1010501)).
1. Erstellen Sie eine Tabelle, die für jede Fluggesellschaft, die vom JFK-Flughafen abflog, abgibt, welcher Anteil ihrer Flüge mit mehr als 30 Minuten Verspätung gestartet (nicht: gelandet!) ist.
2. Schlüsseln Sie die Tabelle nach Monaten auf, so dass erkennbar ist, in welchen Monaten die jeweiligen Gesellschaften besonders viele Probleme hatten. Versuchen Sie, die Tabelle in eine Matrix-Form zu bringen: eine Zeile für jede FLuggesellschaft, eine Spalte für jeden der 12 Monate, und in den Matrix-Elementen jeweils der Anteil der verspäteten Flüge in Prozent.
Falls Sie Schwierigkeiten haben, fragen Sie auf Slack, oder werfen Sie einen Blick auf die Tipps [hier](uebungen_hinweise.html).
## Musterlösung
Die Musterlösung für die Aufgaben werden wir später hier veröffentlichen. Also Starthilfe hier der Code, den wir in den Präsenzübungen gemeinsam entwickelt haben, um die durschnicttliche Verspätung in Minuten (nicht: den Anteil der Flüge mit über 30 Minuten Verspätung) zu ermitteln.
```{r}
suppressPackageStartupMessages({
library( tidyverse )
library( nycflights13 ) })
tibble(
month_number = 1:12,
month_name = fct_inorder(month.name)
) -> months_table
flights %>%
filter( !is.na(arr_delay) ) %>%
mutate( arr_delay = ifelse( arr_delay<0, 0, arr_delay ) )%>%
group_by( month ) %>%
summarise( mean_delay = mean(arr_delay) ) %>%
left_join( months_table, by = c( "month"="month_number" ) )%>%
ggplot +
geom_col( aes( x=month_name, y=mean_delay ) ) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
```