Contexto

El paquete nycflights13 contiene información sobre todos los vuelos que partieron desde Nueva York (EWR, FK 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.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

Guardar bases de datos

flights <- flights
weather<- weather
planes<- planes
airports<- airports
airlines<- airlines

Relación entre las bases de datos

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>

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" ...
# int: entero (sin decimales)
#num: numerico (con decimales)
#chr: caracter (letras)
#Date: fecha(en R va año-mes-día)
#POSIXct_: Formato fecha

Cual es la clase de “flights” y que significan?

class(flights)
## [1] "tbl_df"     "tbl"        "data.frame"
#Los 5 clases de objetos  son: 
# 1. numeric: Numero real o decimales
# 2. integer: numero enteros
# 3. complex: numero complejos
# 4. character: caracteres (texto)
# 5. logical: TRUE o FALSE

# las 4 clases de objetos compuestos son: 
# 1. list: lista
# 2. matrix: matriz
# 3. array: coleccion de objetos
# 4. character: coleccion de objetos
# 5. data.frame: base de datos

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

#Numero de columnas
ncol(flights)
## [1] 19
#Numero de renglones
nrow(flights)
## [1] 336776

Muestra los primeros 6 renglones de “flights”. Tambien los ultimos 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)

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

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 realizar las funciones más comunes del análisis exploratorio, el cual es el primer pasó para cualquier trabajo de manipulación de datos.

LS0tCnRpdGxlOiAiRXZpZGVuY2lhIDEgfCBOZXcgWW9yayIKYXV0aG9yOiAiS2FybGEgTWlyZXlhIFZlbGRlcnJhaW4gQTAwMjI3NDExIgpkYXRlOiAiMjAyNC0wMi0yNiIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIHRoZW1lOiB5ZXRpCi0tLQoKIVtdKC9Vc2Vycy9rYXJsYWxvcGV6L0Rlc2t0b3AvbWFuaXB1bGFjaW9uIGRlIGRhdG9zL3R1bWJscl9tZ3VlZmo4Y1VoMXMwMXVydG8xXzUwMC5naWYpCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPkNvbnRleHRvPC9zcGFuPgpFbCBwYXF1ZXRlICoqbnljZmxpZ2h0czEzKiogY29udGllbmUgaW5mb3JtYWNpw7NuIHNvYnJlIHRvZG9zIGxvcyB2dWVsb3MgcXVlIHBhcnRpZXJvbiBkZXNkZSBOdWV2YSBZb3JrIChFV1IsIEZLIHkgTEdBKSBhIGRlc3Rpbm9zIGVuIGxvcyBFc3RhZG9zIFVuaWRvcyBlbiAyMDEzLiBGdWVyb24gMzM2LDc3NiB2dWVsb3MgZW4gdG90YWwuIFBhcmEgYXl1ZGFyIGEgY29tcHJlbmRlciBsYXMgY2F1c2FzIGRlIGxvcyByZXRyYXNvcywgdGFtYmnDqW4gaW5jbHV5ZSBvdHJvcyBjb25qdW50b3MgZGUgZGF0b3Mgw7p0aWxlcy4gIAoKRXN0ZSBwYXF1ZXRlIGluY2x1eWUgbGFzIHNpZ3VpZW50ZXMgdGFibGFzOgoKKyBmbGlnaHRzID0gdG9kb3MgbG9zIHZ1ZWxvcyBxdWUgc2FsaWVyb24gZGUgTnVldmEgWW9yayBlbiAyMDEzCisgd2VhdGhlciA9IGRhdG9zIG1ldGVvcm9sw7NnaWNvcyBwb3IgaG9yYSBkZSBjYWRhIGFlcm9wdWVydG8gCisgcGxhbmVzID0gaW5mb3JtYWNpw7NuIGRlIGNvbnN0cnVjY2nDs24gZGUgY2FkYSBhdmnDs24gCisgYWlycG9ydHMgPSBub21icmVzIHkgdWJpY2FjaW9uZXMgZGUgYWVyb3B1ZXJ0b3MgCisgYWlybGluZXMgPSByZWxhY2nDs24gZW50cmUgbm9tYnJlcyB5IGPDs2RpZ29zIGRlIGxhcyBhZXJvbMOtbmVhcy4gCgpGdWVudGU6CltPcmlnZW4gZGUgbG9zIGRhdG9zXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvbnljZmxpZ2h0czEzL255Y2ZsaWdodHMxMy5wZGYpCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTQ7Ij5JbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzPC9zcGFuPgpgYGB7cn0KI2luc3RhbGwucGFja2FnZXMgKCJueWNmbGlnaHRzMTMpCmxpYnJhcnkobnljZmxpZ2h0czEzKQojaW5zdGFsbC5wYWNrYWdlcyAoInRpZHl2ZXJzZSIpCmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCgojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTQ7Ij5HdWFyZGFyIGJhc2VzIGRlIGRhdG9zPC9zcGFuPgpgYGB7cn0KZmxpZ2h0cyA8LSBmbGlnaHRzCndlYXRoZXI8LSB3ZWF0aGVyCnBsYW5lczwtIHBsYW5lcwphaXJwb3J0czwtIGFpcnBvcnRzCmFpcmxpbmVzPC0gYWlybGluZXMKCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU0OyI+UmVsYWNpw7NuIGVudHJlIGxhcyBiYXNlcyBkZSBkYXRvczwvc3Bhbj4KIVtdKC9Vc2Vycy9rYXJsYWxvcGV6L0Rvd25sb2Fkcy9yZWxhdGlvbmFsLW55Y2ZsaWdodHMucG5nKQoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU0OyI+Q2FyZ2FyIGVuIG1lbW9yaWEgbGEgdGFibGEgImZsaWdodHMiIHkgbW9zdHJhciBzdSBjb250ZW5pZG88L3NwYW4+CgpgYGB7cn0KI2xhIGNhcmdhIGEgbWVtb3JpYSBzZSBoaXpvIGVuIGVsIHBhc28gYW50ZXJpb3IKZmxpZ2h0cwpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlNDsiPkNvbnN1bHRhIGxhIGVzdHJ1Y3R1cmEgZGUgImZsaWdodHMiPC9zcGFuPgpgYGB7cn0Kc3RyKGZsaWdodHMpCiMgaW50OiBlbnRlcm8gKHNpbiBkZWNpbWFsZXMpCiNudW06IG51bWVyaWNvIChjb24gZGVjaW1hbGVzKQojY2hyOiBjYXJhY3RlciAobGV0cmFzKQojRGF0ZTogZmVjaGEoZW4gUiB2YSBhw7FvLW1lcy1kw61hKQojUE9TSVhjdF86IEZvcm1hdG8gZmVjaGEKCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU0OyI+Q3VhbCBlcyBsYSBjbGFzZSBkZSAiZmxpZ2h0cyIgeSBxdWUgc2lnbmlmaWNhbj88L3NwYW4+CmBgYHtyfQpjbGFzcyhmbGlnaHRzKQojTG9zIDUgY2xhc2VzIGRlIG9iamV0b3MgIHNvbjogCiMgMS4gbnVtZXJpYzogTnVtZXJvIHJlYWwgbyBkZWNpbWFsZXMKIyAyLiBpbnRlZ2VyOiBudW1lcm8gZW50ZXJvcwojIDMuIGNvbXBsZXg6IG51bWVybyBjb21wbGVqb3MKIyA0LiBjaGFyYWN0ZXI6IGNhcmFjdGVyZXMgKHRleHRvKQojIDUuIGxvZ2ljYWw6IFRSVUUgbyBGQUxTRQoKIyBsYXMgNCBjbGFzZXMgZGUgb2JqZXRvcyBjb21wdWVzdG9zIHNvbjogCiMgMS4gbGlzdDogbGlzdGEKIyAyLiBtYXRyaXg6IG1hdHJpegojIDMuIGFycmF5OiBjb2xlY2Npb24gZGUgb2JqZXRvcwojIDQuIGNoYXJhY3RlcjogY29sZWNjaW9uIGRlIG9iamV0b3MKIyA1LiBkYXRhLmZyYW1lOiBiYXNlIGRlIGRhdG9zCgpgYGAKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU0OyI+wr9DdcOhbnRhcyBjb2x1bW5hcyB5IHJlbmdsb25lcyB0aWVuZSAiZmxpZ2h0cyI/IMK/Q3VhbCBlcyBzdSBkaW1lbnNpw7NuPzwvc3Bhbj4KYGBge3J9CiNOdW1lcm8gZGUgY29sdW1uYXMKbmNvbChmbGlnaHRzKQojTnVtZXJvIGRlIHJlbmdsb25lcwpucm93KGZsaWdodHMpCmBgYAoKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU0OyI+TXVlc3RyYSBsb3MgcHJpbWVyb3MgNiByZW5nbG9uZXMgZGUgImZsaWdodHMiLiBUYW1iaWVuIGxvcyB1bHRpbW9zIDY8L3NwYW4+CmBgYHtyfQpoZWFkKGZsaWdodHMpCnRhaWwoZmxpZ2h0cykKIyBTaSBxdWlzaWVyYW1vcyA3IHJlbmdsb25lczogaGVhZChmbGlnaHRzLCA3KQpgYGAKIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU0OyI+TXVlc3RyYSBsb3MgZXN0YWTDrXN0aWNvcyBkZXNjcmlwdGl2b3MgZGUgImZsaWdodHMiLiBUYW1iaWVuIGxvcyB1bHRpbW9zIDY8L3NwYW4+CgpgYGB7cn0Kc3VtbWFyeShmbGlnaHRzKQpgYGAKCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlNDsiPkNvbmNsdXNpw7NuPC9zcGFuPgpFbiBlc3RlIHRyYWJham8gcHVkaW1vcyByZWFsaXphciBsYXMgZnVuY2lvbmVzIG3DoXMgY29tdW5lcyBkZWwgYW7DoWxpc2lzIGV4cGxvcmF0b3JpbywgZWwgY3VhbCBlcyBlbCBwcmltZXIgcGFzw7MgcGFyYSBjdWFscXVpZXIgdHJhYmFqbyBkZSBtYW5pcHVsYWNpw7NuIGRlIGRhdG9zLgoKCgoK