
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 compreder las causas de los retrasos, también incluye
otros conjuntos de datos útiles.
Este paquete inluye las siguientes tablas:
- flights = todos lso vuelos que salieron de Nueva York en 2013
- weather = datos meteorológicos por hora de cada aeropuerto
- planes = información de contrucción de cada avión
- airports = nombres y ubicaciones de aeropuertos
- airlines = relación entre nombre y códigos de 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.4.4 ✔ 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
Gardar bases de datos
flights <- flights
weather <- weather
planes <- planes
airports <- airports
airlines <- airlines
Relación entre las bases de
datos

Funciones Básicas de Manejo de
datos
Select
La función select sirve para seleccionar columnas de una
tabla (data frame).
df1 <- flights %>% select(flight, carrier) # Selección de columnas específicas
df2 <- flights %>% select(flight: carrier) # Selección de rango de columans
df3 <- flights %>% select(-carrier, -flight) # Eliminar columnas específicas
df4 <- flights %>% select(-carrier:-distance) # Eliminar un rango de columnas
df5 <- flights %>% select(aerolinea = carrier) # Selección de columna y cambio de nombre
df6 <- flights %>% rename(aerolinea = carrier) # Cambio de nombre a una columna
Filter
La función filter sirve para seleccionar renglones de una
tabla (data frame).
df7 <- flights %>% filter(dep_delay >=500) #Extrae renglones que cumplan condición
#Condicionales: Igual ==, Desigual =!=, Mayor que >, Mayor o igual que >=, Menor o igual que <=, Menor que <
# Operadores lógicos: AND &, OR |, NOT !
df8 <- flights %>% filter(dep_delay >=500, dep_delay <=600) # Estrae renglones que cumplan con 2 condiciones
df9 <- flights %>% slice(1000:1099) # Extrae los números de los renglones indicados, sin importar sus valores
Distinct
La función distinct sirve para eliminar renglones duplicados
de una tabla (data frame).
df10 <- distinct(flights) # Dejar sólo los renglones diferentes, borra todos los repetidos.
Merge
La función merge sirve para juntar bases de datos.
bdgrande <- merge(flights, airlines, by="carrier")
bdgrande2 <- merge(bdgrande,planes, by="tailnum")
Mutate
bdgrande3 <- mutate(bdgrande2, dist_km = distance*1.609) # Agrega variables nuevas calculadas a partir de variables existentes en la base de datos
Ejercicios
- Encuentra todos los vuelos que tuvieron un atraso de 2 horas o
más.
ejercicio1 <- bdgrande2 %>% filter(arr_delay>= 120)
- Encuentra todos los vuelos que llegaron a Houston (IAH o HOU)
ejercicio2 <- bdgrande2 %>% filter(dest == "IAH" | dest == "HOU")
- Encuentra todos los vuelos operados por United, American o
Delta
ejercicio3 <- bdgrande2 %>% filter(carrier %in% c("UA","AA","DL"))
LS0tDQp0aXRsZTogIkRhdGEgV3JhbmdsaW5nIChQYXJ0ZSAxKSINCmF1dGhvcjogIkFkcmlhbiBNb3JhbGVzIC0gQTAxNzIyNTMyIg0KZGF0ZTogIjIwMjQtMDItMTUiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFIA0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICB0aGVtZTogc2FuZHN0b25lDQotLS0NCg0KIVtdKEM6XFxVc2Vyc1xcYWRyaWFcXE9uZURyaXZlXFxEb2N1bWVudG9zXFxSU3R1ZGlvXFxnaXBoeS5naWYpDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBCbHVlOyI+Q29udGV4dG88L3NwYW4+IA0KRWwgcGFxdWV0ZSAqKm55Y2ZsaWdodHMxMyoqIGNvbnRpZW5lIGluZm9ybWFjacOzbiBzb2JyZSB0b2RvcyBsb3MgdnVlbG9zIHF1ZSBwYXJ0aWVyb24gZGVzZGUgTnVldmEgWW9yayAoRVdSLCBKRksgWSBMR0EpIGEgZGVzdGlub3MgZW4gbG9zIEVzdGFkb3MgVW5pZG9zIGVuIDIwMTMuIEZ1ZXJvbiAzMzYsNzc2IHZ1ZWxvcyBlbiB0b3RhbC4gUGFyYSBheXVkYXIgYSBjb21wcmVkZXIgbGFzIGNhdXNhcyBkZSBsb3MgcmV0cmFzb3MsIHRhbWJpw6luIGluY2x1eWUgb3Ryb3MgY29uanVudG9zIGRlIGRhdG9zIMO6dGlsZXMuDQoNCkVzdGUgcGFxdWV0ZSBpbmx1eWUgbGFzIHNpZ3VpZW50ZXMgdGFibGFzOg0KDQorIGZsaWdodHMgPSB0b2RvcyBsc28gdnVlbG9zIHF1ZSBzYWxpZXJvbiBkZSBOdWV2YSBZb3JrIGVuIDIwMTMgICANCisgd2VhdGhlciA9IGRhdG9zIG1ldGVvcm9sw7NnaWNvcyBwb3IgaG9yYSBkZSBjYWRhIGFlcm9wdWVydG8gIA0KKyBwbGFuZXMgPSBpbmZvcm1hY2nDs24gZGUgY29udHJ1Y2Npw7NuIGRlIGNhZGEgYXZpw7NuICANCisgYWlycG9ydHMgPSBub21icmVzIHkgdWJpY2FjaW9uZXMgZGUgYWVyb3B1ZXJ0b3MgIA0KKyBhaXJsaW5lcyA9IHJlbGFjacOzbiBlbnRyZSBub21icmUgeSBjw7NkaWdvcyBkZSBhZXJvbMOtbmVhcyAgDQoNCkZ1ZW50ZToNCltPcmlnZW4gZGUgbG9zIGRhdG9zXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvbnljZmxpZ2h0czEzL255Y2ZsaWdodHMxMy5wZGYpICANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5JbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzPC9zcGFuPg0KYGBge3J9DQojIGluc3RhbGwucGFja2FnZXMoIm55Y2ZsaWdodHMxMyIpDQpsaWJyYXJ5KG55Y2ZsaWdodHMxMykNCiMgaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+R2FyZGFyIGJhc2VzIGRlIGRhdG9zPC9zcGFuPg0KYGBge3J9DQpmbGlnaHRzIDwtIGZsaWdodHMNCndlYXRoZXIgPC0gd2VhdGhlcg0KcGxhbmVzIDwtIHBsYW5lcw0KYWlycG9ydHMgPC0gYWlycG9ydHMNCmFpcmxpbmVzIDwtIGFpcmxpbmVzDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5SZWxhY2nDs24gZW50cmUgbGFzIGJhc2VzIGRlIGRhdG9zPC9zcGFuPg0KDQohW10oQzpcXFVzZXJzXFxhZHJpYVxcT25lRHJpdmVcXERvY3VtZW50b3NcXFJTdHVkaW9cXHJlbGF0aW9uYWwtbnljZmxpZ2h0cy5wbmcpDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+RnVuY2lvbmVzIELDoXNpY2FzIGRlIE1hbmVqbyBkZSBkYXRvczwvc3Bhbj4NCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+U2VsZWN0PC9zcGFuPg0KTGEgZnVuY2nDs24gKnNlbGVjdCogc2lydmUgcGFyYSBzZWxlY2Npb25hciBjb2x1bW5hcyBkZSB1bmEgdGFibGEgKCpkYXRhIGZyYW1lKikuICANCmBgYHtyfQ0KZGYxIDwtIGZsaWdodHMgJT4lIHNlbGVjdChmbGlnaHQsIGNhcnJpZXIpICMgU2VsZWNjacOzbiBkZSBjb2x1bW5hcyBlc3BlY8OtZmljYXMgIA0KZGYyIDwtIGZsaWdodHMgJT4lIHNlbGVjdChmbGlnaHQ6IGNhcnJpZXIpICMgU2VsZWNjacOzbiBkZSByYW5nbyBkZSBjb2x1bWFucyAgDQpkZjMgPC0gZmxpZ2h0cyAlPiUgc2VsZWN0KC1jYXJyaWVyLCAtZmxpZ2h0KSAjIEVsaW1pbmFyIGNvbHVtbmFzIGVzcGVjw61maWNhcyAgDQpkZjQgPC0gZmxpZ2h0cyAlPiUgc2VsZWN0KC1jYXJyaWVyOi1kaXN0YW5jZSkgIyBFbGltaW5hciB1biByYW5nbyBkZSBjb2x1bW5hcyAgDQpkZjUgPC0gZmxpZ2h0cyAlPiUgc2VsZWN0KGFlcm9saW5lYSA9IGNhcnJpZXIpICMgU2VsZWNjacOzbiBkZSBjb2x1bW5hIHkgY2FtYmlvIGRlIG5vbWJyZQ0KZGY2IDwtIGZsaWdodHMgJT4lIHJlbmFtZShhZXJvbGluZWEgPSBjYXJyaWVyKSAjIENhbWJpbyBkZSBub21icmUgYSB1bmEgY29sdW1uYSAgDQpgYGANCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+RmlsdGVyPC9zcGFuPiAgDQpMYSBmdW5jacOzbiAqZmlsdGVyKiBzaXJ2ZSBwYXJhIHNlbGVjY2lvbmFyIHJlbmdsb25lcyBkZSB1bmEgdGFibGEgKCpkYXRhIGZyYW1lKikuICANCmBgYHtyfQ0KZGY3IDwtIGZsaWdodHMgJT4lIGZpbHRlcihkZXBfZGVsYXkgPj01MDApICNFeHRyYWUgcmVuZ2xvbmVzIHF1ZSBjdW1wbGFuIGNvbmRpY2nDs24gIA0KI0NvbmRpY2lvbmFsZXM6IElndWFsID09LCBEZXNpZ3VhbCA9IT0sIE1heW9yIHF1ZSA+LCBNYXlvciBvIGlndWFsIHF1ZSA+PSwgTWVub3IgbyBpZ3VhbCBxdWUgPD0sIE1lbm9yIHF1ZSA8ICANCiMgT3BlcmFkb3JlcyBsw7NnaWNvczogQU5EICYsIE9SIHwsIE5PVCAhICANCmRmOCA8LSBmbGlnaHRzICU+JSBmaWx0ZXIoZGVwX2RlbGF5ID49NTAwLCBkZXBfZGVsYXkgPD02MDApICMgRXN0cmFlIHJlbmdsb25lcyBxdWUgY3VtcGxhbiBjb24gMiBjb25kaWNpb25lcw0KZGY5IDwtIGZsaWdodHMgJT4lIHNsaWNlKDEwMDA6MTA5OSkgIyBFeHRyYWUgbG9zIG7Dum1lcm9zIGRlIGxvcyByZW5nbG9uZXMgaW5kaWNhZG9zLCBzaW4gaW1wb3J0YXIgc3VzIHZhbG9yZXMgIA0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkRpc3RpbmN0PC9zcGFuPiAgDQpMYSBmdW5jacOzbiAqZGlzdGluY3QqIHNpcnZlIHBhcmEgZWxpbWluYXIgcmVuZ2xvbmVzIGR1cGxpY2Fkb3MgZGUgdW5hIHRhYmxhICgqZGF0YSBmcmFtZSopLiAgDQpgYGB7cn0NCmRmMTAgPC0gZGlzdGluY3QoZmxpZ2h0cykgIyBEZWphciBzw7NsbyBsb3MgcmVuZ2xvbmVzIGRpZmVyZW50ZXMsIGJvcnJhIHRvZG9zIGxvcyByZXBldGlkb3MuDQpgYGANCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+TWVyZ2U8L3NwYW4+ICANCkxhIGZ1bmNpw7NuICptZXJnZSogc2lydmUgcGFyYSBqdW50YXIgYmFzZXMgZGUgZGF0b3MuIA0KYGBge3J9DQpiZGdyYW5kZSA8LSBtZXJnZShmbGlnaHRzLCBhaXJsaW5lcywgYnk9ImNhcnJpZXIiKQ0KYmRncmFuZGUyIDwtIG1lcmdlKGJkZ3JhbmRlLHBsYW5lcywgYnk9InRhaWxudW0iKQ0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPk11dGF0ZTwvc3Bhbj4gIA0KYGBge3J9DQpiZGdyYW5kZTMgPC0gbXV0YXRlKGJkZ3JhbmRlMiwgZGlzdF9rbSA9IGRpc3RhbmNlKjEuNjA5KSAjIEFncmVnYSB2YXJpYWJsZXMgbnVldmFzIGNhbGN1bGFkYXMgYSBwYXJ0aXIgZGUgdmFyaWFibGVzIGV4aXN0ZW50ZXMgZW4gbGEgYmFzZSBkZSBkYXRvcw0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkVqZXJjaWNpb3M8L3NwYW4+DQoxLiBFbmN1ZW50cmEgdG9kb3MgbG9zIHZ1ZWxvcyBxdWUgdHV2aWVyb24gdW4gYXRyYXNvIGRlIDIgaG9yYXMgbyBtw6FzLg0KYGBge3J9DQplamVyY2ljaW8xIDwtIGJkZ3JhbmRlMiAlPiUgZmlsdGVyKGFycl9kZWxheT49IDEyMCkNCmBgYA0KDQoyLiBFbmN1ZW50cmEgdG9kb3MgbG9zIHZ1ZWxvcyBxdWUgbGxlZ2Fyb24gYSBIb3VzdG9uIChJQUggbyBIT1UpDQpgYGB7cn0NCmVqZXJjaWNpbzIgPC0gYmRncmFuZGUyICU+JSBmaWx0ZXIoZGVzdCA9PSAiSUFIIiB8IGRlc3QgPT0gIkhPVSIpDQpgYGANCg0KMy4gRW5jdWVudHJhIHRvZG9zIGxvcyB2dWVsb3Mgb3BlcmFkb3MgcG9yIFVuaXRlZCwgQW1lcmljYW4gbyBEZWx0YQ0KYGBge3J9DQplamVyY2ljaW8zIDwtIGJkZ3JhbmRlMiAlPiUgZmlsdGVyKGNhcnJpZXIgJWluJSBjKCJVQSIsIkFBIiwiREwiKSkNCmBgYA0KDQoNCg0KDQo=