-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path01-dplyr.Rmd
125 lines (85 loc) · 3.03 KB
/
01-dplyr.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
---
title: "Manipulación de datos con dplyr"
author: "Patricia Perrone"
date: "2022-07-30"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
# Completá el espacio con los paquetes que vas a necesitar
library(datos) # paquete con datos
library(dplyr) # para manipular datos
library(usethis)
```
# Conecto usuario
```{r}
use_git_config(user.name = "patoperrone",
user.email = "[email protected]")
```
# Preparación
Primero, cargo los datos del paquete datos.
Corré esta línea de código si en algún momento modificaste la variable `vuelos` y querés volver a empezar.
¡No borres ni modifiques este bloque!
```{r}
vuelos <- datos::vuelos
```
1. Corré `?vuelos` en la consola para ver la ayuda de la base de datos `vuelos`. Fijate qué es cada columna de la tabla.
Muestra de las primeras 6 filas de la tabla, para ver qué pinta tiene.
```{r}
head(vuelos)
```
# Ejercicios
Usando la función filter().
Encontrá todos los vuelos que:
a. Tuvieron un retraso de llegada de dos o más horas
```{r}
filter(vuelos, atraso_llegada >= 120)
```
Ayuda: si te da un error como este:
Error in filter(vuelos, atraso_llegada >= 120) : filter
object 'atraso_llegada' not found
asegurate de haber cargado el paquete dplyr en el primer bloque de código.
1. Encontrá todos los vuelos que:
b. Volaron a Houston (IAH o HOU)
```{r}
filter(vuelos, destino == "IAH" | destino == "HOU")
```
c. Fueron operados por United, American o Delta
```{r}
filter(vuelos, aerolinea == "American" | aerolinea == "Delta")
```
d. Llegaron más de dos horas tarde, pero no salieron tarde
```{r}
filter(vuelos, atraso_llegada >= 120 & atraso_salida == 0)
```
e. Partieron entre la medianoche y las 6 a.m. (incluyente)
(Ojo, en algunos casos la medianoche está escrita como 2400.)
```{r}
filter(vuelos, horario_salida >= 0 & horario_salida <=600 | horario_salida >= 2400 & horario_salida <=600)
```
2. Calculá el tiempo de vuelo usando `horario_llegada - horario_salida` ¿Es igual a `tiempo_vuelo`? ¿Cuál es el problema?
```{r}
mutate(vuelos, tiempo_de_vuelo = horario_llegada - horario_salida)
```
```{r}
print("RTA: El problema es que el horario de salida y el de llegada están expresados en la hora local, por lo que no se puede calcular con la fórmula indicada")
```
3. Calculá el tiempo de vuelo promedio para cada aeropuerto de origen.
(Ayuda: Si hay que calcular algo **para cada *algo***, hay que siempre pensar en groupos.)
```{r}
vuelos %>%
group_by(origen) %>%
summarise(tiempo_vuelo_promedio = mean(tiempo_vuelo, na.rm = TRUE))
```
¿Por qué hay que poner el argumento `na.rm = TRUE`?
Fijate qué pasa si lo sacás y buscá en la ayuda de la función `mean` para ver qué hace.
```{r}
print("RTA: evita errores en el caso de que haya datos perdidos y no pueda cañlcular los promedios")
```
4. Calculá el retraso medio para cada aerolínea.
```{r}
# asumo que se trata del retraso en la salida.
vuelos %>%
group_by(origen) %>%
summarise(retraso_promedio = mean(atraso_salida, na.rm = TRUE))
```