-
Notifications
You must be signed in to change notification settings - Fork 0
/
ha-03-solutions.Rmd
225 lines (132 loc) · 4.41 KB
/
ha-03-solutions.Rmd
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
---
title: "Hausaufgabe 03 - Hallo {dplyr}"
author: "Füge deinen Namen hier hinzu"
date: "Füge das Datum hier hinzu"
output:
html_document:
toc: yes
toc_float: true
editor_options:
chunk_output_type: console
---
```{r setup, include=FALSE}
# Ich habe hier ein paar Standardeinstellungen für dich vorgenommen
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
```
# Lade Packages
```{r lade-packages, message=FALSE}
library(nycflights13) # Installiere das Package mit install.packages("") in der Konsole (Fenster unten links)
library(dplyr)
```
# Daten erkunden
Nutze die dir bekannten Funktionen um die Daten zu erkunden.
```{r}
```
# Tastaturkürzel
Ich habe hier nochmals die wichtigsten Tastaturkürzel für dich hinzugefügt
- **Einen neuen Code-chunk hinzufügen:** Ctrl + Alt + I
- **Code "Zeile für Zeile" innerhalb eines Code-chunks ausführen:** Ctrl + Enter
- **Den gesamten Code-chunk ausführen:** Ctrl + Shift + Enter
- **Die Pipe (%>%):** Ctrl + Shift + M
- **Der Zuweisungs-Operator (<-)**: Alt + -
# Übungen
Ich habe für dich für jede Übung eine Struktur vorbereitet. Es ist ein Bereich für Notizen und Fragen da, welche du auch direkt in unserem Slack Channel stellen kannst. Du kannst auch Code-chunks hinzufügen und den Code aus dem Buch kopieren und selbst ausprobieren. Auch die Fragestellungen für die Übungen aus den jeweiligen Kapiteln habe ich bereits hinzugefügt. Schreibe deinen Code in den jeweiligen Bereich für die Frage.
## Übung 1 - dplyr::filter()
### Notizen / Fragen - Kapitel 5.1
**Lösche diesen Text und füge deine Notizen und Fragen hinzu**
### Notizen / Fragen - Kapitel 5.2
**Lösche diesen Text und füge deine Notizen und Fragen hinzu**
### Kapitel - 5.2.4 Exercises
1. Find all flights that:
```{r}
# a. Had an arrival delay of two or more hours
flights %>%
filter(arr_delay >= 120)
# b. Flew to Houston (`IAH` or `HOU`)
flights %>%
filter(dest %in% c("IAH", "HOU"))
flights %>%
filter(dest == "IAH" | dest == "HOU")
# c. Were operated by United, American, or Delta
# Dataframe airlines anschauen um den Airline Code für die Namen zu finden
# ?airlines
flights %>%
filter(carrier %in% c("AA", "DL", "UA"))
# d. Departed in summer (July, August, and September)
flights %>%
filter(month >= 7, month <= 9)
# e. Arrived more than two hours late, but didn't leave late
flights %>%
filter(arr_delay > 120, dep_delay <= 0)
# f. Were delayed by at least an hour, but made up over 30 minutes in flight
flights %>%
filter(dep_delay >= 60, dep_delay - arr_delay > 30)
# g. Departed between midnight and 6am (inclusive)
flights %>%
filter(dep_time <= 600 | dep_time == 2400)
```
2. Another useful dplyr filtering helper is `between()`.
What does it do?
Can you use it to simplify the code needed to answer the previous challenges?
```{r}
flights %>%
filter(between(month, 7, 9))
flights %>%
filter(month %in% c(7:9))
library(palmerpenguins)
penguins %>%
filter(between(bill_depth_mm, 20, 25))
```
3. How many flights have a missing `dep_time`?
What other variables are missing?
What might these rows represent?
```{r}
flights %>%
filter(is.na(dep_time))
# Für die gleiche variable fehlt dep_delay und arr_time
# >> Flüge wurden gestrichen
```
## Übung 2 - dplyr::arrange()
### Notizen / Fragen - Kapitel 5.3
### Kapitel - 5.3.1 Exercises
1. Sort `flights` to find the most delayed flights.
Find the flights that left earliest.
```{r}
flights %>%
arrange(desc(dep_delay))
flights %>%
arrange(dep_delay)
```
2. Sort `flights` to find the fastest (highest speed) flights.
```{r}
flights %>%
arrange(air_time)
```
3. Which flights travelled the farthest?
Which travelled the shortest?
```{r}
flights %>%
arrange(desc(distance))
flights %>%
arrange(distance)
```
## Übung 3 - dplyr::select()
### Notizen / Fragen - Kapitel 5.4
### Kapitel - 5.4.1 Exercises
1. Brainstorm as many ways as possible to select `dep_time`, `dep_delay`, `arr_time`, and `arr_delay` from `flights`.
```{r}
flights %>%
select(dep_time, dep_delay, arr_time, arr_delay)
flights %>%
select(4, 6, 7, 9)
vektor_vars <- c("dep_time", "dep_delay", "arr_time", "arr_delay")
flights %>%
select(all_of(vektor_vars))
flights %>%
select(any_of(vektor_vars))
```
2. What happens if you include the name of a variable multiple times in a `select()` call?
```{r}
flights %>%
select(year, month, year, year)
```