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

1. Cragar en memoria la tabla flights y mostrar su contenido

#La carga de 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" ...
# int: entero (sin decimales)
# num: numérico (condecimales)
# chr: caractér (letras)
# date: fecha (en R va año-mes-día)
# POSIXct: formato fecha y hora

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

class(flights)
## [1] "tbl_df"     "tbl"        "data.frame"
# Las t clases de objetos son:
# 1. numeric: número real o decimales
# 2. integer: números 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 objetos
# 4. data.frame: based 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 utilizar las funciones más comunes del análisis exploratorio, el cual es el primer paso para cualquier trabajo de manipulación de datos

LS0tDQp0aXRsZTogIkV2aWRlbmNpYSAxIC0gTmV3IFlvcmsiDQphdXRob3I6ICJBZHJpYW4gTW9yYWxlcyAtIEEwMTcyMjUzMiINCmRhdGU6ICIyMDI0LTAyLTI2Ig0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRSANCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6IHNhbmRzdG9uZQ0KLS0tDQoNCg0KIVtdKEM6XFxVc2Vyc1xcYWRyaWFcXE9uZURyaXZlXFxEb2N1bWVudG9zXFxSU3R1ZGlvXFxnaXBoeS5naWYpDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBCbHVlOyI+Q29udGV4dG88L3NwYW4+IA0KRWwgcGFxdWV0ZSAqKm55Y2ZsaWdodHMxMyoqIGNvbnRpZW5lIGluZm9ybWFjacOzbiBzb2JyZSB0b2RvcyBsb3MgdnVlbG9zIHF1ZSBwYXJ0aWVyb24gZGVzZGUgTnVldmEgWW9yayAoRVdSLCBKRksgWSBMR0EpIGEgZGVzdGlub3MgZW4gbG9zIEVzdGFkb3MgVW5pZG9zIGVuIDIwMTMuIEZ1ZXJvbiAzMzYsNzc2IHZ1ZWxvcyBlbiB0b3RhbC4gUGFyYSBheXVkYXIgYSBjb21wcmVkZXIgbGFzIGNhdXNhcyBkZSBsb3MgcmV0cmFzb3MsIHRhbWJpw6luIGluY2x1eWUgb3Ryb3MgY29uanVudG9zIGRlIGRhdG9zIMO6dGlsZXMuDQoNCkVzdGUgcGFxdWV0ZSBpbmx1eWUgbGFzIHNpZ3VpZW50ZXMgdGFibGFzOg0KDQorIGZsaWdodHMgPSB0b2RvcyBsc28gdnVlbG9zIHF1ZSBzYWxpZXJvbiBkZSBOdWV2YSBZb3JrIGVuIDIwMTMgICANCisgd2VhdGhlciA9IGRhdG9zIG1ldGVvcm9sw7NnaWNvcyBwb3IgaG9yYSBkZSBjYWRhIGFlcm9wdWVydG8gIA0KKyBwbGFuZXMgPSBpbmZvcm1hY2nDs24gZGUgY29udHJ1Y2Npw7NuIGRlIGNhZGEgYXZpw7NuICANCisgYWlycG9ydHMgPSBub21icmVzIHkgdWJpY2FjaW9uZXMgZGUgYWVyb3B1ZXJ0b3MgIA0KKyBhaXJsaW5lcyA9IHJlbGFjacOzbiBlbnRyZSBub21icmUgeSBjw7NkaWdvcyBkZSBhZXJvbMOtbmVhcyAgDQoNCkZ1ZW50ZToNCltPcmlnZW4gZGUgbG9zIGRhdG9zXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvbnljZmxpZ2h0czEzL255Y2ZsaWdodHMxMy5wZGYpICANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5JbnN0YWxhciBwYXF1ZXRlcyB5IGxsYW1hciBsaWJyZXLDrWFzPC9zcGFuPg0KYGBge3J9DQojIGluc3RhbGwucGFja2FnZXMoIm55Y2ZsaWdodHMxMyIpDQpsaWJyYXJ5KG55Y2ZsaWdodHMxMykNCiMgaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+R2FyZGFyIGJhc2VzIGRlIGRhdG9zPC9zcGFuPg0KYGBge3J9DQpmbGlnaHRzIDwtIGZsaWdodHMNCndlYXRoZXIgPC0gd2VhdGhlcg0KcGxhbmVzIDwtIHBsYW5lcw0KYWlycG9ydHMgPC0gYWlycG9ydHMNCmFpcmxpbmVzIDwtIGFpcmxpbmVzDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5SZWxhY2nDs24gZW50cmUgbGFzIGJhc2VzIGRlIGRhdG9zPC9zcGFuPg0KDQohW10oQzpcXFVzZXJzXFxhZHJpYVxcT25lRHJpdmVcXERvY3VtZW50b3NcXFJTdHVkaW9cXHJlbGF0aW9uYWwtbnljZmxpZ2h0cy5wbmcpDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+MS4gQ3JhZ2FyIGVuIG1lbW9yaWEgbGEgdGFibGEgZmxpZ2h0cyB5IG1vc3RyYXIgc3UgY29udGVuaWRvPC9zcGFuPiAgDQpgYGB7cn0NCiNMYSBjYXJnYSBkZSBtZW1vcmlhIHNlIGhpem8gZW4gZWwgcGFzbyBhbnRlcmlvci4NCmZsaWdodHMNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPjIuIENvbnN1bHRhIGxhIGVzdHJ1Y3R1cmEgZGUgImZsaWdodHMiPC9zcGFuPg0KYGBge3J9DQpzdHIoZmxpZ2h0cykNCiMgaW50OiBlbnRlcm8gKHNpbiBkZWNpbWFsZXMpDQojIG51bTogbnVtw6lyaWNvIChjb25kZWNpbWFsZXMpDQojIGNocjogY2FyYWN0w6lyIChsZXRyYXMpDQojIGRhdGU6IGZlY2hhIChlbiBSIHZhIGHDsW8tbWVzLWTDrWEpDQojIFBPU0lYY3Q6IGZvcm1hdG8gZmVjaGEgeSBob3JhDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij4zLiDCv0N1w6FsIGVzIGxhIGNsYXNlIGRlICJmbGlnaHRzIiB5IHF1w6kgc2lnbmlmaWNhPzwvc3Bhbj4NCmBgYHtyfQ0KY2xhc3MoZmxpZ2h0cykNCg0KIyBMYXMgdCBjbGFzZXMgZGUgb2JqZXRvcyBzb246DQojIDEuIG51bWVyaWM6IG7Dum1lcm8gcmVhbCBvIGRlY2ltYWxlcw0KIyAyLiBpbnRlZ2VyOiBuw7ptZXJvcyBlbnRlcm9zDQojIDMuIGNvbXBsZXg6IG7Dum1lcm9zIGNvbXBsZWpvcw0KIyA0LiBjaGFyYWN0ZXI6IGNhcmFjdMOpcmVzDQojIDUuIGxvZ2ljYWw6IFRSVUUgbyBGQUxTRQ0KDQojIExhcyA0IGNsYXNlcyBkZSBvYmpldG9zIGNvbXB1ZXN0b3Mgc29uOg0KIyAxLiBsaXN0OiBsaXN0YQ0KIyAyLiBtYXRyaXg6IG1hdHJpeg0KIyAzLiBhcnJheTogY29sZWNjacOzbiBkZSBvYmpldG9zDQojIDQuIGRhdGEuZnJhbWU6IGJhc2VkIGRlIGRhdG9zDQpgYGANCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij40LiDCv0N1w6FudGFzIGNvbHVtbmFzIHkgcmVuZ2xvbmVzIHRpZW5lICJmbGlnaHRzIj8gwr9DdcOhbCBlcyBzdSBkaW1lbnNpw7NuPzwvc3Bhbj4NCmBgYHtyfQ0KI07Dum1lcm8gZGUgY29sdW1uYXMNCm5jb2woZmxpZ2h0cykNCiNOw7ptZXJvIGRlIHJlbmdsb25lcw0KbnJvdyhmbGlnaHRzKQ0KI0RpbWVuc2nDs24NCmRpbShmbGlnaHRzKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+NS4gTXVlc3RyYSBsb3MgcHJpbWVyb3MgNiByZW5nbG9uZXMgZGUgImZsaWdodHMiLiBUYW1iacOpbiBsb3Mgw7psdGltb3MgNi48L3NwYW4+DQpgYGB7cn0NCmhlYWQoZmxpZ2h0cykNCnRhaWwoZmxpZ2h0cykNCiMgU2kgcXVpc2llcmFtb3MgNyByZW5nbG9uZXM6IGhlYWQoZmxpZ2h0cyw3KQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+Ni4gIE11ZXN0cmEgbG9zIGVzdGFkw61zdGljb3MgZGVzY3JpcHRpdm9zIGRlICJmbGlnaHRzIjwvc3Bhbj4NCmBgYHtyfQ0Kc3VtbWFyeShmbGlnaHRzKQ0KYGBgDQoNCiMgPHNwYW4gc3R5bGU9ImNvbG9yOiBibHVlOyI+Q29uY2x1c2nDs248L3NwYW4+DQpFbiBlc3RlIHRyYWJham8gcHVkaW1vcyB1dGlsaXphciBsYXMgZnVuY2lvbmVzIG3DoXMgY29tdW5lcyBkZWwgYW7DoWxpc2lzIGV4cGxvcmF0b3JpbywgZWwgY3VhbCBlcyBlbCBwcmltZXIgcGFzbyBwYXJhIGN1YWxxdWllciB0cmFiYWpvIGRlIG1hbmlwdWxhY2nDs24gZGUgZGF0b3M=