American Airlines busca mejorar su posición competitiva en el mercado, pero para ello debe de analizar a detalle a sus competidores y asegurarse de estar en las primeras posiciones de liderazgo dentro de dicho mercado. Nuestra empresa en Inteligencia de Negocios, brindará a la compañía un análisis detallado sobre factores clave para las aerolíneas, entre ellos, los descriptivos de las distancias recorridas, tráfico aéreo, carriles, tiempo de vuelo, destino y origen de los vuelos de cada aerolínea. Este análisis se realizará haciendo uso de comandos pertenecientes a la librería nycflights13, instalada en nuestro software de análisis, en la cual encontramos la paquetería tidyverse, que incluye los paquetes tibble, tidyr, dplyr, este último nos permite cambiar los objetos de datos y obtener resúmenes de los objetos de datos, simplificando la información para su análisis.
1. Consulta los data frame Airlines, airports, , weather, airlines. Para comenzar nuestro análisis y obtener una descripción general, haremos una exploración en cada una de las cinco data frames que componen nuestra base de datos implementando comandos descriptivos, entre ellos, data() - Llama a la base de datos para su manipulación str() - Descripción del data frame para saber cantidad de columnas, filas y tipos de variables ncol() - Conocer el número de columnas de un data frame nrow() - Conocer el número de filas de un data frame dim() - Conocer las dimensiones (filas, columnas) de un data frame View() - Abrir una ventana externa o gráfica para observar la tabla completa head() - Primeros 6 filas de un data.frame tail() - Últimas 6 filas de un data.frame summary() - Muestra estadísticas de cada columna
Data frame “Flights”
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ✔ readr 2.1.4
## ── 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
## 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" ...
Tipos de variables, núm - numeric, int - integer, chr - character.
## [1] 19
## [1] 336776
## [1] 336776 19
## 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
##
Data frame “Airports”
## tibble [1,458 × 8] (S3: tbl_df/tbl/data.frame)
## $ faa : chr [1:1458] "04G" "06A" "06C" "06N" ...
## $ name : chr [1:1458] "Lansdowne Airport" "Moton Field Municipal Airport" "Schaumburg Regional" "Randall Airport" ...
## $ lat : num [1:1458] 41.1 32.5 42 41.4 31.1 ...
## $ lon : num [1:1458] -80.6 -85.7 -88.1 -74.4 -81.4 ...
## $ alt : num [1:1458] 1044 264 801 523 11 ...
## $ tz : num [1:1458] -5 -6 -6 -5 -5 -5 -5 -5 -5 -8 ...
## $ dst : chr [1:1458] "A" "A" "A" "A" ...
## $ tzone: chr [1:1458] "America/New_York" "America/Chicago" "America/Chicago" "America/New_York" ...
## - attr(*, "spec")=
## .. cols(
## .. id = col_double(),
## .. name = col_character(),
## .. city = col_character(),
## .. country = col_character(),
## .. faa = col_character(),
## .. icao = col_character(),
## .. lat = col_double(),
## .. lon = col_double(),
## .. alt = col_double(),
## .. tz = col_double(),
## .. dst = col_character(),
## .. tzone = col_character()
## .. )
Tipos de datos, num - numeric, chr - character,
## [1] 8
## [1] 1458
## [1] 1458 8
## faa name lat lon
## Length:1458 Length:1458 Min. :19.72 Min. :-176.65
## Class :character Class :character 1st Qu.:34.26 1st Qu.:-119.19
## Mode :character Mode :character Median :40.09 Median : -94.66
## Mean :41.65 Mean :-103.39
## 3rd Qu.:45.07 3rd Qu.: -82.52
## Max. :72.27 Max. : 174.11
## alt tz dst tzone
## Min. : -54.00 Min. :-10.000 Length:1458 Length:1458
## 1st Qu.: 70.25 1st Qu.: -8.000 Class :character Class :character
## Median : 473.00 Median : -6.000 Mode :character Mode :character
## Mean :1001.42 Mean : -6.519
## 3rd Qu.:1062.50 3rd Qu.: -5.000
## Max. :9078.00 Max. : 8.000
Data frame “weather”
## tibble [26,115 × 15] (S3: tbl_df/tbl/data.frame)
## $ origin : chr [1:26115] "EWR" "EWR" "EWR" "EWR" ...
## $ year : int [1:26115] 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
## $ month : int [1:26115] 1 1 1 1 1 1 1 1 1 1 ...
## $ day : int [1:26115] 1 1 1 1 1 1 1 1 1 1 ...
## $ hour : int [1:26115] 1 2 3 4 5 6 7 8 9 10 ...
## $ temp : num [1:26115] 39 39 39 39.9 39 ...
## $ dewp : num [1:26115] 26.1 27 28 28 28 ...
## $ humid : num [1:26115] 59.4 61.6 64.4 62.2 64.4 ...
## $ wind_dir : num [1:26115] 270 250 240 250 260 240 240 250 260 260 ...
## $ wind_speed: num [1:26115] 10.36 8.06 11.51 12.66 12.66 ...
## $ wind_gust : num [1:26115] NA NA NA NA NA NA NA NA NA NA ...
## $ precip : num [1:26115] 0 0 0 0 0 0 0 0 0 0 ...
## $ pressure : num [1:26115] 1012 1012 1012 1012 1012 ...
## $ visib : num [1:26115] 10 10 10 10 10 10 10 10 10 10 ...
## $ time_hour : POSIXct[1:26115], format: "2013-01-01 01:00:00" "2013-01-01 02:00:00" ...
Tipos de variables, núm - numeric, int - integer, chr - character.
## [1] 15
## [1] 26115
## [1] 26115 15
## origin year month day
## Length:26115 Min. :2013 Min. : 1.000 Min. : 1.00
## Class :character 1st Qu.:2013 1st Qu.: 4.000 1st Qu.: 8.00
## Mode :character Median :2013 Median : 7.000 Median :16.00
## Mean :2013 Mean : 6.504 Mean :15.68
## 3rd Qu.:2013 3rd Qu.: 9.000 3rd Qu.:23.00
## Max. :2013 Max. :12.000 Max. :31.00
##
## hour temp dewp humid
## Min. : 0.00 Min. : 10.94 Min. :-9.94 Min. : 12.74
## 1st Qu.: 6.00 1st Qu.: 39.92 1st Qu.:26.06 1st Qu.: 47.05
## Median :11.00 Median : 55.40 Median :42.08 Median : 61.79
## Mean :11.49 Mean : 55.26 Mean :41.44 Mean : 62.53
## 3rd Qu.:17.00 3rd Qu.: 69.98 3rd Qu.:57.92 3rd Qu.: 78.79
## Max. :23.00 Max. :100.04 Max. :78.08 Max. :100.00
## NA's :1 NA's :1 NA's :1
## wind_dir wind_speed wind_gust precip
## Min. : 0.0 Min. : 0.000 Min. :16.11 Min. :0.000000
## 1st Qu.:120.0 1st Qu.: 6.905 1st Qu.:20.71 1st Qu.:0.000000
## Median :220.0 Median : 10.357 Median :24.17 Median :0.000000
## Mean :199.8 Mean : 10.518 Mean :25.49 Mean :0.004469
## 3rd Qu.:290.0 3rd Qu.: 13.809 3rd Qu.:28.77 3rd Qu.:0.000000
## Max. :360.0 Max. :1048.361 Max. :66.75 Max. :1.210000
## NA's :460 NA's :4 NA's :20778
## pressure visib time_hour
## Min. : 983.8 Min. : 0.000 Min. :2013-01-01 01:00:00.0
## 1st Qu.:1012.9 1st Qu.:10.000 1st Qu.:2013-04-01 21:30:00.0
## Median :1017.6 Median :10.000 Median :2013-07-01 14:00:00.0
## Mean :1017.9 Mean : 9.255 Mean :2013-07-01 18:26:37.7
## 3rd Qu.:1023.0 3rd Qu.:10.000 3rd Qu.:2013-09-30 13:00:00.0
## Max. :1042.1 Max. :10.000 Max. :2013-12-30 18:00:00.0
## NA's :2729
Data frame “planes”
## tibble [3,322 × 9] (S3: tbl_df/tbl/data.frame)
## $ tailnum : chr [1:3322] "N10156" "N102UW" "N103US" "N104UW" ...
## $ year : int [1:3322] 2004 1998 1999 1999 2002 1999 1999 1999 1999 1999 ...
## $ type : chr [1:3322] "Fixed wing multi engine" "Fixed wing multi engine" "Fixed wing multi engine" "Fixed wing multi engine" ...
## $ manufacturer: chr [1:3322] "EMBRAER" "AIRBUS INDUSTRIE" "AIRBUS INDUSTRIE" "AIRBUS INDUSTRIE" ...
## $ model : chr [1:3322] "EMB-145XR" "A320-214" "A320-214" "A320-214" ...
## $ engines : int [1:3322] 2 2 2 2 2 2 2 2 2 2 ...
## $ seats : int [1:3322] 55 182 182 182 55 182 182 182 182 182 ...
## $ speed : int [1:3322] NA NA NA NA NA NA NA NA NA NA ...
## $ engine : chr [1:3322] "Turbo-fan" "Turbo-fan" "Turbo-fan" "Turbo-fan" ...
Tipos de variables, int - integer, chr - character.
## [1] 9
## [1] 3322
## [1] 3322 9
## tailnum year type manufacturer
## Length:3322 Min. :1956 Length:3322 Length:3322
## Class :character 1st Qu.:1997 Class :character Class :character
## Mode :character Median :2001 Mode :character Mode :character
## Mean :2000
## 3rd Qu.:2005
## Max. :2013
## NA's :70
## model engines seats speed
## Length:3322 Min. :1.000 Min. : 2.0 Min. : 90.0
## Class :character 1st Qu.:2.000 1st Qu.:140.0 1st Qu.:107.5
## Mode :character Median :2.000 Median :149.0 Median :162.0
## Mean :1.995 Mean :154.3 Mean :236.8
## 3rd Qu.:2.000 3rd Qu.:182.0 3rd Qu.:432.0
## Max. :4.000 Max. :450.0 Max. :432.0
## NA's :3299
## engine
## Length:3322
## Class :character
## Mode :character
##
##
##
##
Data frame “airlines”
## tibble [16 × 2] (S3: tbl_df/tbl/data.frame)
## $ carrier: chr [1:16] "9E" "AA" "AS" "B6" ...
## $ name : chr [1:16] "Endeavor Air Inc." "American Airlines Inc." "Alaska Airlines Inc." "JetBlue Airways" ...
Tipos de variables, chr - character.
## [1] 2
## [1] 16
## [1] 16 2
## carrier name
## Length:16 Length:16
## Class :character Class :character
## Mode :character Mode :character
2. Consulta el data frame flights para recordar su contenido.
Función: View()
## # 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>
3. Consulta de los descriptivos de las distancias.
## distance
## Min. : 17
## 1st Qu.: 502
## Median : 872
## Mean :1040
## 3rd Qu.:1389
## Max. :4983
Summary nos permite conocer la distancia mínima recorrida por las aerolíneas en todos los vuelos la cual es 17 millas, así mismos podemos conocer estadísticos como la media que es el promedio de las distancias recorridas y la mediana que nos ayuda a entender el comportamiento de los datos. Por último tenemos la distancia máxima recorrida, equivalente a 4983 millas.
4. Consulta para encontrar la suma y la media de las distancias recorridas por aerolínea
distancias <- flights %>% group_by(carrier) %>%
summarize(suma = sum(distance, na.rm = TRUE), media = mean(distance, na.rm = TRUE))
print(distancias)## # A tibble: 16 × 3
## carrier suma media
## <chr> <dbl> <dbl>
## 1 9E 9788152 530.
## 2 AA 43864584 1340.
## 3 AS 1715028 2402
## 4 B6 58384137 1069.
## 5 DL 59507317 1237.
## 6 EV 30498951 563.
## 7 F9 1109700 1620
## 8 FL 2167344 665.
## 9 HA 1704186 4983
## 10 MQ 15033955 570.
## 11 OO 16026 501.
## 12 UA 89705524 1529.
## 13 US 11365778 553.
## 14 VX 12902327 2499.
## 15 WN 12229203 996.
## 16 YV 225395 375.
Trabajamos con el dataframe de (flights) para poder obtener la suma y la media de las distancias recorridas, haciendo una limpieza de los valores que no contienen información o están perdidos, dejando los valores significantes en nuestra nueva dataframe, la cual se llamará (distancias) y podemos encontrar en ella por carrier, la distancia y media recorridos. Los hallazgos que encontramos para American Airlines es una suma de 43864584 millas recorridas y un promedio de 1340.2360 millas.
5. Consulta para calcular la media de distancias para filtrar
## [1] 21888600
Ahora que contamos con nuestra dataframe (distancias), nos interesa obtener la media de todas las sumas de las distancias recorridas por carrier, por ello, nombramos a nuestra función (mediatotal) y guardamos nuestro cálculo de la media al igual que la limpieza de nuestros datos, así nuestra (mediatotal) será más exacta.
6. Consulta para filtrar las aerolíneas con suma de distancia superior a la media.
## # A tibble: 5 × 3
## carrier suma media
## <chr> <dbl> <dbl>
## 1 AA 43864584 1340.
## 2 B6 58384137 1069.
## 3 DL 59507317 1237.
## 4 EV 30498951 563.
## 5 UA 89705524 1529.
Finalmente conocemos la (mediatotal) con la cual podemos filtrar las aerolineas usando la suma total de distancias recorridas. Nuestro filtro selecciona sólo aquellas que se encuentren por arriba de la (mediatotal). Los datos resultantes los guardamos en un nuevo dataframe llamado (filtroaero). Los datos nos muestran que American Airlines se encuentra dentro de las aerolíneas que recorrieron una distancia total por arriba de la media, con una suma total 43864584 y una media total de 1340.2360.
7. Consulta para filtrar el data frame flights por las aerolíneas filtradas y selección de las columnas carrier, distance, origin, dest para un nuevo dataframe.
finalaero <- flights %>%
filter(carrier %in% filtroaero$carrier) %>%
select(carrier, distance, origin, dest) %>%
arrange(desc(distance))
print(finalaero)## # A tibble: 248,312 × 4
## carrier distance origin dest
## <chr> <dbl> <chr> <chr>
## 1 UA 4963 EWR HNL
## 2 UA 4963 EWR HNL
## 3 UA 4963 EWR HNL
## 4 UA 4963 EWR HNL
## 5 UA 4963 EWR HNL
## 6 UA 4963 EWR HNL
## 7 UA 4963 EWR HNL
## 8 UA 4963 EWR HNL
## 9 UA 4963 EWR HNL
## 10 UA 4963 EWR HNL
## # ℹ 248,302 more rows
Ahora para visualizar más a detalle las aerolíneas que han recorrido una distancia superior a la (mediatotal), seleccionamos del dataframe (flights) los campos carrier, distance, origin, dest en forma descendente por distance. A esta nueva dataframe la llamamos (finalaero) y solicitamos su visualización para asegurar que contenga los datos solicitados. Esta tabla nos permite conocer todos los vuelos que realizó American Airlines y todas las aerolíneas que están por arriba de la media total.
8. Consulta para identificar si las aerolíneas líderes son las mismas en los tres aeropuertos cuyo origen es Nueva York ( John F. Kennedy (JFK), LaGuardia (LGA) and Newark Liberty (EWR) . Generando un data frame para cada aeropuerto.
Llegamos a la parte más importante para nuestra empresa, conocer las compañías líderes en el los aeropuertos de Nueva York, ciudad principal donde operan. Para obtener las compañías en el top, seguiremos los mismos pasos por cada aeropuerto. 1. Nombrar nuestra nueva dataframe con las iniciales del aeropuerto 2. Filtrar el origen de cada vuelo 3. Agrupar la información por carril 4. Contar los datos que pasen el filtro y acomodarlos de manera descendente. 5. Renombrar el campo n por n.flights 6. Obtener solo los primeros 6 resultados (EL TOP QUE BUSCAMOS!)
JFK <- flights %>%
filter(origin == "JFK") %>%
group_by(carrier) %>%
count() %>%
arrange(desc(n)) %>%
rename(n.flights = n) %>%
head()
print(JFK) ## # A tibble: 6 × 2
## # Groups: carrier [6]
## carrier n.flights
## <chr> <int>
## 1 B6 42076
## 2 DL 20701
## 3 9E 14651
## 4 AA 13783
## 5 MQ 7193
## 6 UA 4534
B6 JetBlue Airways se encuentra en la primera posición del top con 42076 vuelos - Aeropuerto LaGuardia
American Airlines se encuentra en la cuarta posición del top con 13783 vuelos - Aeropuerto John F. Kennedy
LGA <- flights %>%
filter(origin == "LGA") %>%
group_by(carrier) %>%
count() %>%
arrange(desc(n)) %>%
rename(n.flights = n) %>%
head()
print(LGA) ## # A tibble: 6 × 2
## # Groups: carrier [6]
## carrier n.flights
## <chr> <int>
## 1 DL 23067
## 2 MQ 16928
## 3 AA 15459
## 4 US 13136
## 5 EV 8826
## 6 UA 8044
Delta Air Lines Inc. se encuentra en la primera posición del top con 23067 vuelos- Aeropuerto LaGuardia
American Airlines se encuentra en la tercera posición del top con 15459 vuelos- Aeropuerto LaGuardia
EWR <- flights %>%
filter(origin == "EWR") %>%
group_by(carrier) %>%
count() %>%
arrange(desc(n)) %>%
rename(n.flights = n) %>%
head()
print(EWR) ## # A tibble: 6 × 2
## # Groups: carrier [6]
## carrier n.flights
## <chr> <int>
## 1 UA 46087
## 2 EV 43939
## 3 B6 6557
## 4 WN 6188
## 5 US 4405
## 6 DL 4342
United Air Lines Inc. se encuentra en la primera posición del top con 46087 vuelos- Aeropuerto LaGuardia
American Airlines no se encuentra dentro de los primeros seis lugares - Aeropuerto Newark Liberty
Los hallazgos más importantes de nuestro reporte fueron, American Airlines tiene una suma de distancia total de 43864584 millas y un promedio de 1340.2360 millas, lo que posiciona a la compañía dentro de las empresas que se encuentran por arriba de la media total de millas recorridas equivalente a 21888600 millas. Dentro del mercado American Airlines sólo lidera dos de tres aeropuertos en la ciudad de New York. En aeropuerto de Aeropuerto, LaGuardia, se encuentra en la tercera posición con 15459 vuelos. Seguido del Aeropuerto, John F. Kennedy, en la cuarta posición con 13783 vuelos. Por último en el Aeropuerto, Newark Liberty, no se encuentra dentro de ninguna de las seis primeras posiciones. Siendo sus competidores más fuertes JetBlue Airways, United Air Lines Inc. y Delta Air Lines Inc. Estos resultados nos muestran una área de oportunidad, pues la compañía además de enfocar su atención en subir de posición en los primeros dos aeropuertos, tiene el reto de posicionarse en el top dentro del último aeropuerto. Eso es lo que nos permite la manipulación y analitica de datos, entender de dónde venimos y encaminarnos a donde deseamos ir como empresa al comprender los datos que generamos en las operaciones diarias de la empresa.
Wickham, H. and Grolemund, G. (2017) R for Data Science: Import, Tidy, Transform, Visualize, and Model Data O’Reilly Media: Sebastopol, California
Nycflights13 v1.0.0 https://www.rdocumentation.org/packages/nycflights13/versions/1.0.0