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:

  • fligths = 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 nombre 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.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ 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

Guardar bases de datos

library(nycflights13)
flights <- flights
weather <- weather
planes <- planes
airports <- airports
airlines <- airlines

Relación entre bases de datos

1. Cargar en memoria la tabla “flights” y mostrar su contenido

# La carga a memoria se hizo en el paso anterior
flights
## # A tibble: 336,776 × 19
##     year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
##    <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
##  1  2013     1     1      517            515         2      830            819
##  2  2013     1     1      533            529         4      850            830
##  3  2013     1     1      542            540         2      923            850
##  4  2013     1     1      544            545        -1     1004           1022
##  5  2013     1     1      554            600        -6      812            837
##  6  2013     1     1      554            558        -4      740            728
##  7  2013     1     1      555            600        -5      913            854
##  8  2013     1     1      557            600        -3      709            723
##  9  2013     1     1      557            600        -3      838            846
## 10  2013     1     1      558            600        -2      753            745
## # ℹ 336,766 more rows
## # ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>

2. Consulta la estructura de “flights”

str(flights)
## tibble [336,776 × 19] (S3: tbl_df/tbl/data.frame)
##  $ year          : int [1:336776] 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
##  $ month         : int [1:336776] 1 1 1 1 1 1 1 1 1 1 ...
##  $ day           : int [1:336776] 1 1 1 1 1 1 1 1 1 1 ...
##  $ dep_time      : int [1:336776] 517 533 542 544 554 554 555 557 557 558 ...
##  $ sched_dep_time: int [1:336776] 515 529 540 545 600 558 600 600 600 600 ...
##  $ dep_delay     : num [1:336776] 2 4 2 -1 -6 -4 -5 -3 -3 -2 ...
##  $ arr_time      : int [1:336776] 830 850 923 1004 812 740 913 709 838 753 ...
##  $ sched_arr_time: int [1:336776] 819 830 850 1022 837 728 854 723 846 745 ...
##  $ arr_delay     : num [1:336776] 11 20 33 -18 -25 12 19 -14 -8 8 ...
##  $ carrier       : chr [1:336776] "UA" "UA" "AA" "B6" ...
##  $ flight        : int [1:336776] 1545 1714 1141 725 461 1696 507 5708 79 301 ...
##  $ tailnum       : chr [1:336776] "N14228" "N24211" "N619AA" "N804JB" ...
##  $ origin        : chr [1:336776] "EWR" "LGA" "JFK" "JFK" ...
##  $ dest          : chr [1:336776] "IAH" "IAH" "MIA" "BQN" ...
##  $ air_time      : num [1:336776] 227 227 160 183 116 150 158 53 140 138 ...
##  $ distance      : num [1:336776] 1400 1416 1089 1576 762 ...
##  $ hour          : num [1:336776] 5 5 5 5 6 5 6 6 6 6 ...
##  $ minute        : num [1:336776] 15 29 40 45 0 58 0 0 0 0 ...
##  $ time_hour     : POSIXct[1:336776], format: "2013-01-01 05:00:00" "2013-01-01 05:00:00" ...
#POSIXct: Formato fecha y hora
#Date:fecha(En R es Año, Mes y Día)

3. ¿Cuál es la clase de “flights” y qué significa?

class(flights)
## [1] "tbl_df"     "tbl"        "data.frame"
# las 5 clases de objetos son:
# 1. Numeric: Número real o decimales
# 2. Integer: Numeros enteros
# 3. Complex: Números complejos
# 4. Character: Caractéres
# 5. logical: TRUE o FALSE  

# Las 4 clases de objetos compuestos son:
# 1. list : lista
# 2. matrix : matriz
# 3. array : colección de datos
# 4. data.frame : base de datos

4. ¿Cuántas columnas y renglones tiene “flights”? ¿Cuál es su dimensión?

# Número de columnas
ncol(flights)
## [1] 19
# Número de renglones
nrow(flights)
## [1] 336776
#Dimensión
dim(flights)
## [1] 336776     19

5. Muestra los primeros 6 renglones de “flights”. También los últimos 6

head(flights)
## # A tibble: 6 × 19
##    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
##   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
## 1  2013     1     1      517            515         2      830            819
## 2  2013     1     1      533            529         4      850            830
## 3  2013     1     1      542            540         2      923            850
## 4  2013     1     1      544            545        -1     1004           1022
## 5  2013     1     1      554            600        -6      812            837
## 6  2013     1     1      554            558        -4      740            728
## # ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>
tail(flights)
## # A tibble: 6 × 19
##    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
##   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
## 1  2013     9    30       NA           1842        NA       NA           2019
## 2  2013     9    30       NA           1455        NA       NA           1634
## 3  2013     9    30       NA           2200        NA       NA           2312
## 4  2013     9    30       NA           1210        NA       NA           1330
## 5  2013     9    30       NA           1159        NA       NA           1344
## 6  2013     9    30       NA            840        NA       NA           1020
## # ℹ 11 more variables: arr_delay <dbl>, carrier <chr>, flight <int>,
## #   tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>,
## #   hour <dbl>, minute <dbl>, time_hour <dttm>
# Si quisieramos 7 renglones: head(flights,7)

6. Muestra los estadísticos descriptivos de “flights”

summary(flights)
##       year          month             day           dep_time    sched_dep_time
##  Min.   :2013   Min.   : 1.000   Min.   : 1.00   Min.   :   1   Min.   : 106  
##  1st Qu.:2013   1st Qu.: 4.000   1st Qu.: 8.00   1st Qu.: 907   1st Qu.: 906  
##  Median :2013   Median : 7.000   Median :16.00   Median :1401   Median :1359  
##  Mean   :2013   Mean   : 6.549   Mean   :15.71   Mean   :1349   Mean   :1344  
##  3rd Qu.:2013   3rd Qu.:10.000   3rd Qu.:23.00   3rd Qu.:1744   3rd Qu.:1729  
##  Max.   :2013   Max.   :12.000   Max.   :31.00   Max.   :2400   Max.   :2359  
##                                                  NA's   :8255                 
##    dep_delay          arr_time    sched_arr_time   arr_delay       
##  Min.   : -43.00   Min.   :   1   Min.   :   1   Min.   : -86.000  
##  1st Qu.:  -5.00   1st Qu.:1104   1st Qu.:1124   1st Qu.: -17.000  
##  Median :  -2.00   Median :1535   Median :1556   Median :  -5.000  
##  Mean   :  12.64   Mean   :1502   Mean   :1536   Mean   :   6.895  
##  3rd Qu.:  11.00   3rd Qu.:1940   3rd Qu.:1945   3rd Qu.:  14.000  
##  Max.   :1301.00   Max.   :2400   Max.   :2359   Max.   :1272.000  
##  NA's   :8255      NA's   :8713                  NA's   :9430      
##    carrier              flight       tailnum             origin         
##  Length:336776      Min.   :   1   Length:336776      Length:336776     
##  Class :character   1st Qu.: 553   Class :character   Class :character  
##  Mode  :character   Median :1496   Mode  :character   Mode  :character  
##                     Mean   :1972                                        
##                     3rd Qu.:3465                                        
##                     Max.   :8500                                        
##                                                                         
##      dest              air_time        distance         hour      
##  Length:336776      Min.   : 20.0   Min.   :  17   Min.   : 1.00  
##  Class :character   1st Qu.: 82.0   1st Qu.: 502   1st Qu.: 9.00  
##  Mode  :character   Median :129.0   Median : 872   Median :13.00  
##                     Mean   :150.7   Mean   :1040   Mean   :13.18  
##                     3rd Qu.:192.0   3rd Qu.:1389   3rd Qu.:17.00  
##                     Max.   :695.0   Max.   :4983   Max.   :23.00  
##                     NA's   :9430                                  
##      minute        time_hour                     
##  Min.   : 0.00   Min.   :2013-01-01 05:00:00.00  
##  1st Qu.: 8.00   1st Qu.:2013-04-04 13:00:00.00  
##  Median :29.00   Median :2013-07-03 10:00:00.00  
##  Mean   :26.23   Mean   :2013-07-03 05:22:54.64  
##  3rd Qu.:44.00   3rd Qu.:2013-10-01 07:00:00.00  
##  Max.   :59.00   Max.   :2013-12-31 23:00:00.00  
## 

Conclusión

En este trabajo pudimos utilizarlas funciones más comúnes del análisis exploratorio, el cuál es el primer paso para cualquier trabajo de manipulación de datos.

LS0tDQp0aXRsZTogIkV2aWRlbmNpYSAxIC0gTmV3IFlvcmsiDQphdXRob3I6ICJJa2VyIFZpbGxhZmHDsWEgLSBBMDA1NzM3NTYiDQpkYXRlOiAiMjAyNC0wMi0yNiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiB5ZXRpDQotLS0NCiFbXShDOlxcVXNlcnNcXFVzdWFyaW9cXERvd25sb2Fkc1xcMGE4NWY3MWUxMDExZDc0MjM4Yjc4NWQ5YjU0MDE4OTkuZ2lmKQ0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkNvbnRleHRvPC9zcGFuPg0KRWwgcGFxdWV0ZSAqKm55Y2ZsaWdodHMxMyoqIGNvbnRpZW5lIGluZm9ybWFjacOzbiBzb2JyZSB0b2RvcyBsb3MgdnVlbG9zIHF1ZSBwYXJ0aWVyb24gZGVzZGUgTnVldmEgWW9yayAoRVdSLCBKRksgeSBMR0EpIGEgZGVzdGlub3MgZW4gbG9zIEVzdGFkb3MgVW5pZG9zIGVuIDIwMTMuICBGdWVyb24gMzM2LDc3NiB2dWVsb3MgZW4gdG90YWwuIFBhcmEgYXl1ZGFyIGEgY29tcHJlbmRlciBsYXMgY2F1c2FzIGRlIGxvcyByZXRyYXNvcywgdGFtYmnDqW4gaW5jbHV5ZSBvdHJvcyBjb25qdW50b3MgZGUgZGF0b3Mgw7p0aWxlcy4gIA0KDQpFc3RlIHBhcXVldGUgaW5jbHV5ZSBsYXMgc2lndWllbnRlcyB0YWJsYXM6DQoNCisgKioqZmxpZ3RocyoqKiA9IHRvZG9zIGxvcyB2dWVsb3MgcXVlIHNhbGllcm9uIGRlIE51ZXZhIFlvcmsgZW4gMjAxMyAgDQorICoqKndlYXRoZXIqKiogPSBkYXRvcyBtZXRlb3JvbMOzZ2ljb3MgcG9yIGhvcmEgZGUgY2FkYSBhZXJvcHVlcnRvICANCisgKioqcGxhbmVzKioqID0gaW5mb3JtYWNpw7NuIGRlIGNvbnN0cnVjY2nDs24gZGUgY2FkYSBhdmnDs24gIA0KKyAqKiphaXJwb3J0cyoqKiA9IG5vbWJyZXMgeSB1YmljYWNpb25lcyBkZSBhZXJvcHVlcnRvcyAgDQorICoqKmFpcmxpbmVzKioqID0gcmVsYWNpw7NuIGVudHJlIG5vbWJyZSB5IGPDs2RpZ29zIGRlIGxhcyBhZXJvbMOtbmVhcyAgDQoNCg0KRnVlbnRlOiAgDQpbT3JpZ2VuIGRlIGxvcyBkYXRvc10oaHR0cHM6Ly9jcmFuLnItcHJvamVjdC5vcmcvd2ViL3BhY2thZ2VzL255Y2ZsaWdodHMxMy9pbmRleC5odG1sKQ0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkluc3RhbGFyIHBhcXVldGVzIHkgbGxhbWFyIGxpYnJlcsOtYXM8L3NwYW4+DQpgYGB7cn0NCiNpbnN0YWxsLnBhY2thZ2VzKCJueWNmbGlnaHRzMTMiKQ0KbGlicmFyeShueWNmbGlnaHRzMTMpDQojaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQoNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5HdWFyZGFyIGJhc2VzIGRlIGRhdG9zPC9zcGFuPg0KYGBge3J9DQpsaWJyYXJ5KG55Y2ZsaWdodHMxMykNCmZsaWdodHMgPC0gZmxpZ2h0cw0Kd2VhdGhlciA8LSB3ZWF0aGVyDQpwbGFuZXMgPC0gcGxhbmVzDQphaXJwb3J0cyA8LSBhaXJwb3J0cw0KYWlybGluZXMgPC0gYWlybGluZXMNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPlJlbGFjacOzbiBlbnRyZSBiYXNlcyBkZSBkYXRvczwvc3Bhbj4NCiFbXShDOlxcVXNlcnNcXFVzdWFyaW9cXERvd25sb2Fkc1xcQ2FwdHVyYSBkZSBwYW50YWxsYSAyMDI0LTAyLTE5IDEyMTcyNS5wbmcpDQoNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4xLiBDYXJnYXIgZW4gbWVtb3JpYSBsYSB0YWJsYSAiZmxpZ2h0cyIgeSBtb3N0cmFyIHN1IGNvbnRlbmlkbzwvc3Bhbj4NCmBgYHtyfQ0KIyBMYSBjYXJnYSBhIG1lbW9yaWEgc2UgaGl6byBlbiBlbCBwYXNvIGFudGVyaW9yDQpmbGlnaHRzDQpgYGANCg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPjIuIENvbnN1bHRhIGxhIGVzdHJ1Y3R1cmEgZGUgImZsaWdodHMiPC9zcGFuPg0KYGBge3J9DQpzdHIoZmxpZ2h0cykNCiNQT1NJWGN0OiBGb3JtYXRvIGZlY2hhIHkgaG9yYQ0KI0RhdGU6ZmVjaGEoRW4gUiBlcyBBw7FvLCBNZXMgeSBEw61hKQ0KYGBgDQoNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4zLiDCv0N1w6FsIGVzIGxhIGNsYXNlIGRlICJmbGlnaHRzIiB5IHF1w6kgc2lnbmlmaWNhPzwvc3Bhbj4NCmBgYHtyfQ0KY2xhc3MoZmxpZ2h0cykNCiMgbGFzIDUgY2xhc2VzIGRlIG9iamV0b3Mgc29uOg0KIyAxLiBOdW1lcmljOiBOw7ptZXJvIHJlYWwgbyBkZWNpbWFsZXMNCiMgMi4gSW50ZWdlcjogTnVtZXJvcyBlbnRlcm9zDQojIDMuIENvbXBsZXg6IE7Dum1lcm9zIGNvbXBsZWpvcw0KIyA0LiBDaGFyYWN0ZXI6IENhcmFjdMOpcmVzDQojIDUuIGxvZ2ljYWw6IFRSVUUgbyBGQUxTRSAgDQoNCiMgTGFzIDQgY2xhc2VzIGRlIG9iamV0b3MgY29tcHVlc3RvcyBzb246DQojIDEuIGxpc3QgOiBsaXN0YQ0KIyAyLiBtYXRyaXggOiBtYXRyaXoNCiMgMy4gYXJyYXkgOiBjb2xlY2Npw7NuIGRlIGRhdG9zDQojIDQuIGRhdGEuZnJhbWUgOiBiYXNlIGRlIGRhdG9zDQpgYGANCg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPjQuIMK/Q3XDoW50YXMgY29sdW1uYXMgeSByZW5nbG9uZXMgdGllbmUgImZsaWdodHMiPyAgwr9DdcOhbCBlcyBzdSBkaW1lbnNpw7NuPzwvc3Bhbj4NCmBgYHtyfQ0KIyBOw7ptZXJvIGRlIGNvbHVtbmFzDQpuY29sKGZsaWdodHMpDQojIE7Dum1lcm8gZGUgcmVuZ2xvbmVzDQpucm93KGZsaWdodHMpDQojRGltZW5zacOzbg0KZGltKGZsaWdodHMpDQpgYGANCg0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPjUuIE11ZXN0cmEgbG9zIHByaW1lcm9zIDYgcmVuZ2xvbmVzIGRlICJmbGlnaHRzIi4gVGFtYmnDqW4gbG9zIMO6bHRpbW9zIDY8L3NwYW4+DQpgYGB7cn0NCmhlYWQoZmxpZ2h0cykNCnRhaWwoZmxpZ2h0cykNCiMgU2kgcXVpc2llcmFtb3MgNyByZW5nbG9uZXM6IGhlYWQoZmxpZ2h0cyw3KQ0KYGBgDQoNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij42LiBNdWVzdHJhIGxvcyBlc3RhZMOtc3RpY29zIGRlc2NyaXB0aXZvcyBkZSAiZmxpZ2h0cyI8L3NwYW4+DQpgYGB7cn0NCnN1bW1hcnkoZmxpZ2h0cykNCmBgYA0KDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+Q29uY2x1c2nDs248L3NwYW4+DQoNCkVuIGVzdGUgdHJhYmFqbyBwdWRpbW9zIHV0aWxpemFybGFzIGZ1bmNpb25lcyBtw6FzIGNvbcO6bmVzIGRlbCBhbsOhbGlzaXMgZXhwbG9yYXRvcmlvLCBlbCBjdcOhbCBlcyBlbCBwcmltZXIgcGFzbyBwYXJhIGN1YWxxdWllciB0cmFiYWpvIGRlIG1hbmlwdWxhY2nDs24gZGUgZGF0b3MuDQo=