Contexto
El paquete nycflights13 contiene información sobre
todos los vuelos que partieron desde Nueva York (EWR, JFK y LGA) a
destinos en los Estados Unidos en 2013. Fueron 336,776 vuelos en total.
Para ayudar a comprender las causas de los retrasos, también incluye
otros conjuntos de datos útiles.
Este paquete incluye las siguientes tablas:
- flights = todos los vuelos que salieron de Nueva York en 2013
- weather = datos meteorológicos por hora de cada aeropuerto
- planes = información de construcción de cada avión
- airports = nombres y ubicaciones de aeropuertos
- airlines = relación entre nombres y códigos de las aerolíneas
Fuente: Origen
de los datos
Instalar paquetes y llamar
librerías
# install.packages("nycflights13")
library(nycflights13)
#install.packages("tidyverse")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ 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
Funciones Básicas de Manejo de
Datos
Select
La funcion select sirve para seleccionar columnas de una
tabla (data frame).
df1 <- flights %>% select(carrier, flight)
df2 <- flights %>% select(carrier:distance)
df3 <- flights %>% select(-carrier, -flight)
df4 <- flights %>% select(-carrier:-distance)
df5 <- flights %>% select(aerolinea = carrier)
df6 <- flights %>% rename(aerolinea = carrier)
Filter
La función filter sirve para seleccionar renglones de una
tabla (data frame).
df7 <- flights %>% filter(dep_delay >=500)
df8 <- flights %>% filter(dep_delay >=500,dep_delay <600)
df9 <- flights %>% slice(1000:1099)
Distinct
La función distinct sirve para eliminar renglones
duplicados.
df10 <- distinct(flights)
Merge
La función merge sirve para juntar bases de datos.
bdgrande <- merge(flights,airlines, by="carrier")
bdgrande2 <- merge(bdgrande,planes, by="tailnum")
Ejercicios
- Encuentra todos los vuelos que tuvieron un atraso en llegada de 2
horas o mas.
ejercicio <- bdgrande2 %>% filter(arr_delay>=120)
- Encuentra todos los vuelo que llegaron a Houston (IAH o HOU)
ejercicio2 <- bdgrande2 %>% filter(dest == "IAH" | dest =="HOU")
- Encuentra todos los vuelos operados por United, America o delta
ejercicio3 <- bdgrande2 %>% filter(carrier %in% c("UA","AA","DL"))
- Ejercicio 4. Encuentra todos los vuelos que despegaron en Julio,
Agosto o Septiembre.
ejercicio4b <- bdgrande2 %>% filter(month %in% c(7:9))
- Ejercicio 5. Encuentra todos los vuelos que arrivaron más de 2 horas
tarde, pero no despegaron tarde.
ejercicio5 <- bdgrande2 %>% filter(arr_delay>120 & dep_delay>=0)
- Ejercicio 6. Encuentra todos los vuelos que se retrasaron al menos 1
hora, pero que llegaron antes 30 minutos o más.
ejercicio6 <- bdgrande2 %>% filter(dep_delay>60 & arr_delay<=-30)
- Ejercicio 7. Encuentra todos los vuelos que salieron entre la
medianoche y las 6 a.m.
ejercicio7 <- bdgrande2 %>% filter()
Arrange
Similar a filter() pero en lugar de seleccionar renglones, los ordena
de menor a mayor.
df11 <- arrange(bdgrande2,year.x,month,day)
para acomdar de mayor a menos
df12 <- arrange(bdgrande2,year.x,desc(month),day)
Sumarize
Colapsa una tabla a un solo renglon.
#Obten el retra promedoo de despues de todos los vuelos
summarize(bdgrande2,mean(dep_delay, na.rm= TRUE))
## mean(dep_delay, na.rm = TRUE)
## 1 13.17979
Group
agrupa tabla basado en algunas columnas.
#obtener el retraso promedio de despuegue por dia
por_dia <- group_by(bdgrande2, year.x, month, day)
summarize(por_dia, mean(dep_delay, na.rm=TRUE))
## `summarise()` has grouped output by 'year.x', 'month'. You can override using
## the `.groups` argument.
## # A tibble: 365 × 4
## # Groups: year.x, month [12]
## year.x month day `mean(dep_delay, na.rm = TRUE)`
## <int> <int> <int> <dbl>
## 1 2013 1 1 10.7
## 2 2013 1 2 14.4
## 3 2013 1 3 11.1
## 4 2013 1 4 10.0
## 5 2013 1 5 5.70
## 6 2013 1 6 7.98
## 7 2013 1 7 6.49
## 8 2013 1 8 3.10
## 9 2013 1 9 3.17
## 10 2013 1 10 1.89
## # ℹ 355 more rows
LS0tDQp0aXRsZTogIkF2aW9uZXMiDQphdXRob3I6ICJEYXJpbyBHYWxsYXJkbyINCmRhdGU6ICIyMDI0LTAyLTI2Ig0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQohW10oIkM6XFxVc2Vyc1xcQ2FybG9zXFxEb3dubG9hZHNcXEF2aW9uX0V4cHJlc3NfSXRhbGlhX0FpcmJ1c19BMzIwX0pCTS5qcGciKQ0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkNvbnRleHRvPC9zcGFuPiANCkVsIHBhcXVldGUgKipueWNmbGlnaHRzMTMqKiBjb250aWVuZSBpbmZvcm1hY2nDs24gc29icmUgdG9kb3MgbG9zIHZ1ZWxvcyBxdWUgcGFydGllcm9uIGRlc2RlIE51ZXZhIFlvcmsgKEVXUiwgSkZLIHkgTEdBKSBhIGRlc3Rpbm9zIGVuIGxvcyBFc3RhZG9zIFVuaWRvcyBlbiAyMDEzLiBGdWVyb24gMzM2LDc3NiB2dWVsb3MgZW4gdG90YWwuIFBhcmEgYXl1ZGFyIGEgY29tcHJlbmRlciBsYXMgY2F1c2FzIGRlIGxvcyByZXRyYXNvcywgdGFtYmnDqW4gaW5jbHV5ZSBvdHJvcyBjb25qdW50b3MgZGUgZGF0b3Mgw7p0aWxlcy4gIA0KDQpFc3RlIHBhcXVldGUgaW5jbHV5ZSBsYXMgc2lndWllbnRlcyB0YWJsYXM6DQoNCisgZmxpZ2h0cyA9IHRvZG9zIGxvcyB2dWVsb3MgcXVlIHNhbGllcm9uIGRlIE51ZXZhIFlvcmsgZW4gMjAxMyAgDQorIHdlYXRoZXIgPSBkYXRvcyBtZXRlb3JvbMOzZ2ljb3MgcG9yIGhvcmEgZGUgY2FkYSBhZXJvcHVlcnRvICANCisgcGxhbmVzID0gaW5mb3JtYWNpw7NuIGRlIGNvbnN0cnVjY2nDs24gZGUgY2FkYSBhdmnDs24gICANCisgYWlycG9ydHMgPSBub21icmVzIHkgdWJpY2FjaW9uZXMgZGUgYWVyb3B1ZXJ0b3MNCisgYWlybGluZXMgPSByZWxhY2nDs24gZW50cmUgbm9tYnJlcyB5IGPDs2RpZ29zIGRlIGxhcyBhZXJvbMOtbmVhcyANCg0KRnVlbnRlOg0KW09yaWdlbiBkZSBsb3MgZGF0b3NdKGh0dHBzOi8vY3Jhbi5yLXByb2plY3Qub3JnL3dlYi9wYWNrYWdlcy9ueWNmbGlnaHRzMTMvbnljZmxpZ2h0czEzLnBkZikgIA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXM8L3NwYW4+IA0KYGBge3J9DQojIGluc3RhbGwucGFja2FnZXMoIm55Y2ZsaWdodHMxMyIpDQpsaWJyYXJ5KG55Y2ZsaWdodHMxMykNCiNpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5HdWFyZGFyIGJhc2VzIGRlIGRhdG9zPC9zcGFuPiANCmBgYHtyfQ0KZmxpZ2h0cyA8LSBmbGlnaHRzDQp3ZWF0aGVyIDwtIHdlYXRoZXINCnBsYW5lcyA8LSBwbGFuZXMNCmFpcnBvcnRzIDwtIGFpcnBvcnRzDQphaXJsaW5lcyA8LSBhaXJsaW5lcw0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+UmVsYWNpw7NuIGVudHJlIGxhcyBiYXNlcyBkZSBkYXRvczwvc3Bhbj4gDQoNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5GdW5jaW9uZXMgQsOhc2ljYXMgZGUgTWFuZWpvIGRlIERhdG9zPC9zcGFuPiANCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+U2VsZWN0PC9zcGFuPiANCkxhIGZ1bmNpb24gKnNlbGVjdCogc2lydmUgcGFyYSBzZWxlY2Npb25hciBjb2x1bW5hcyBkZSB1bmEgdGFibGEgKCpkYXRhIGZyYW1lKikuDQpgYGB7cn0NCmRmMSA8LSBmbGlnaHRzICU+JSBzZWxlY3QoY2FycmllciwgZmxpZ2h0KQ0KZGYyIDwtIGZsaWdodHMgJT4lIHNlbGVjdChjYXJyaWVyOmRpc3RhbmNlKQ0KZGYzIDwtIGZsaWdodHMgJT4lIHNlbGVjdCgtY2FycmllciwgLWZsaWdodCkNCmRmNCA8LSBmbGlnaHRzICU+JSBzZWxlY3QoLWNhcnJpZXI6LWRpc3RhbmNlKQ0KZGY1IDwtIGZsaWdodHMgJT4lIHNlbGVjdChhZXJvbGluZWEgPSBjYXJyaWVyKQ0KZGY2IDwtIGZsaWdodHMgJT4lIHJlbmFtZShhZXJvbGluZWEgPSBjYXJyaWVyKQ0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkZpbHRlcjwvc3Bhbj4NCkxhIGZ1bmNpw7NuICpmaWx0ZXIqIHNpcnZlIHBhcmEgc2VsZWNjaW9uYXIgcmVuZ2xvbmVzIGRlIHVuYSB0YWJsYSAoKmRhdGEgZnJhbWUqKS4NCmBgYHtyfQ0KZGY3IDwtIGZsaWdodHMgJT4lIGZpbHRlcihkZXBfZGVsYXkgPj01MDApDQpkZjggPC0gZmxpZ2h0cyAlPiUgZmlsdGVyKGRlcF9kZWxheSA+PTUwMCxkZXBfZGVsYXkgPDYwMCkNCmRmOSA8LSBmbGlnaHRzICU+JSBzbGljZSgxMDAwOjEwOTkpDQpgYGANCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+RGlzdGluY3Q8L3NwYW4+DQpMYSBmdW5jacOzbiAqZGlzdGluY3QqIHNpcnZlIHBhcmEgZWxpbWluYXIgcmVuZ2xvbmVzIGR1cGxpY2Fkb3MuDQpgYGB7cn0NCmRmMTAgPC0gZGlzdGluY3QoZmxpZ2h0cykNCmBgYA0KDQojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5NZXJnZTwvc3Bhbj4NCkxhIGZ1bmNpw7NuICptZXJnZSogc2lydmUgcGFyYSBqdW50YXIgYmFzZXMgZGUgZGF0b3MuDQpgYGB7cn0NCmJkZ3JhbmRlIDwtIG1lcmdlKGZsaWdodHMsYWlybGluZXMsIGJ5PSJjYXJyaWVyIikNCmJkZ3JhbmRlMiA8LSBtZXJnZShiZGdyYW5kZSxwbGFuZXMsIGJ5PSJ0YWlsbnVtIikNCmBgYA0KDQojIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5FamVyY2ljaW9zPC9zcGFuPg0KDQoxLiBFbmN1ZW50cmEgdG9kb3MgbG9zIHZ1ZWxvcyBxdWUgdHV2aWVyb24gdW4gYXRyYXNvIGVuIGxsZWdhZGEgZGUgMiBob3JhcyBvIG1hcy4NCmBgYHtyfQ0KZWplcmNpY2lvIDwtIGJkZ3JhbmRlMiAlPiUgZmlsdGVyKGFycl9kZWxheT49MTIwKQ0KYGBgDQoNCjIuIEVuY3VlbnRyYSB0b2RvcyBsb3MgdnVlbG8gcXVlIGxsZWdhcm9uIGEgSG91c3Rvbg0KKElBSCBvIEhPVSkNCmBgYHtyfQ0KZWplcmNpY2lvMiA8LSBiZGdyYW5kZTIgJT4lIGZpbHRlcihkZXN0ID09ICJJQUgiIHwgZGVzdCA9PSJIT1UiKQ0KYGBgDQoNCjMuIEVuY3VlbnRyYSB0b2RvcyBsb3MgdnVlbG9zIG9wZXJhZG9zIHBvciBVbml0ZWQsIEFtZXJpY2EgbyBkZWx0YQ0KYGBge3J9DQplamVyY2ljaW8zIDwtIGJkZ3JhbmRlMiAlPiUgZmlsdGVyKGNhcnJpZXIgJWluJSBjKCJVQSIsIkFBIiwiREwiKSkgDQpgYGANCg0KNC4gRWplcmNpY2lvIDQuIEVuY3VlbnRyYSB0b2RvcyBsb3MgdnVlbG9zIHF1ZSBkZXNwZWdhcm9uIGVuIEp1bGlvLCBBZ29zdG8gbyBTZXB0aWVtYnJlLg0KYGBge3J9DQplamVyY2ljaW80YiA8LSBiZGdyYW5kZTIgJT4lIGZpbHRlcihtb250aCAlaW4lIGMoNzo5KSkNCmBgYA0KNS4gRWplcmNpY2lvIDUuIEVuY3VlbnRyYSB0b2RvcyBsb3MgdnVlbG9zIHF1ZSBhcnJpdmFyb24gbcOhcyBkZSAyIGhvcmFzIHRhcmRlLCBwZXJvIG5vIGRlc3BlZ2Fyb24gdGFyZGUuDQpgYGB7cn0NCmVqZXJjaWNpbzUgPC0gYmRncmFuZGUyICU+JSBmaWx0ZXIoYXJyX2RlbGF5PjEyMCAmIGRlcF9kZWxheT49MCkNCmBgYA0KNi4gRWplcmNpY2lvIDYuIEVuY3VlbnRyYSB0b2RvcyBsb3MgdnVlbG9zIHF1ZSBzZSByZXRyYXNhcm9uIGFsIG1lbm9zIDEgaG9yYSwgcGVybyBxdWUgbGxlZ2Fyb24gYW50ZXMgMzAgbWludXRvcyBvIG3DoXMuDQpgYGB7cn0NCmVqZXJjaWNpbzYgPC0gYmRncmFuZGUyICU+JSBmaWx0ZXIoZGVwX2RlbGF5PjYwICYgYXJyX2RlbGF5PD0tMzApDQpgYGANCjcuIEVqZXJjaWNpbyA3LiBFbmN1ZW50cmEgdG9kb3MgbG9zIHZ1ZWxvcyBxdWUgc2FsaWVyb24gZW50cmUgbGEgbWVkaWFub2NoZSB5IGxhcyA2IGEubS4gDQpgYGB7cn0NCmVqZXJjaWNpbzcgPC0gYmRncmFuZGUyICU+JSBmaWx0ZXIoKQ0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkFycmFuZ2U8L3NwYW4+IA0KU2ltaWxhciBhIGZpbHRlcigpIHBlcm8gZW4gbHVnYXIgZGUgc2VsZWNjaW9uYXIgcmVuZ2xvbmVzLCBsb3Mgb3JkZW5hIGRlIG1lbm9yIGEgbWF5b3IuDQpgYGB7cn0NCmRmMTEgPC0gYXJyYW5nZShiZGdyYW5kZTIseWVhci54LG1vbnRoLGRheSkNCmBgYA0KDQpwYXJhIGFjb21kYXIgZGUgbWF5b3IgYSBtZW5vcw0KYGBge3J9DQpkZjEyIDwtIGFycmFuZ2UoYmRncmFuZGUyLHllYXIueCxkZXNjKG1vbnRoKSxkYXkpDQpgYGANCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+U3VtYXJpemU8L3NwYW4+IA0KQ29sYXBzYSB1bmEgdGFibGEgYSB1biBzb2xvIHJlbmdsb24uDQpgYGB7cn0NCiNPYnRlbiBlbCByZXRyYSBwcm9tZWRvbyBkZSBkZXNwdWVzIGRlIHRvZG9zIGxvcyB2dWVsb3MNCnN1bW1hcml6ZShiZGdyYW5kZTIsbWVhbihkZXBfZGVsYXksIG5hLnJtPSBUUlVFKSkNCmBgYA0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+R3JvdXA8L3NwYW4+IA0KYWdydXBhIHRhYmxhIGJhc2FkbyBlbiBhbGd1bmFzIGNvbHVtbmFzLg0KYGBge3J9DQojb2J0ZW5lciBlbCByZXRyYXNvIHByb21lZGlvIGRlIGRlc3B1ZWd1ZSBwb3IgZGlhIA0KcG9yX2RpYSA8LSBncm91cF9ieShiZGdyYW5kZTIsIHllYXIueCwgbW9udGgsIGRheSkNCnN1bW1hcml6ZShwb3JfZGlhLCBtZWFuKGRlcF9kZWxheSwgbmEucm09VFJVRSkpDQpgYGANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K