AGREGAR IMAGEN
El paquete nycflights13 contiene información sore todos los vueles que partieron desde Nueva York(EWR, JFL, LGA) en destinos a los Estados Unidos en 2013. Fueron 336,776 vuelos en total. Para ayudar a comprender las causas de los retrasos, también incluye otros ocnjuntos de datos útiles.
Este paquete incluye las siguientes tablas:
Fuente: Origen de los datos
#install.packages("nycflight13")
library(nycflights13)
#install.packages("tidyverse")
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## ── 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.5.0 ✔ 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
#install.packages("dplyr")
library(dplyr)
#install.packages("ggplot2")
library(ggplot2)
#install.packages("")
library(broom)
## Warning: package 'broom' was built under R version 4.3.3
flights <- flights
weather <- weather
planes <- planes
airports <- airports
airlines <- airlines
bdgrande <-merge(flights,airlines, by="carrier")
bdgrande2 <-left_join(bdgrande,planes, by="tailnum")
bdgrande3 <- left_join(bdgrande2,weather,by=c("origin","time_hour"))
bdgrande4 <- left_join(bdgrande3, airports, by = c("origin" = "faa"))
bdgrande5 <- left_join(bdgrande4, airports, by = c("dest" = "faa"))
dim(bdgrande5)
## [1] 336776 55
agregar imagen
La función select sirve para seleccionar columnos de un table (data frame).
df1 <- flights %>% select(carrier, flight) # Selección de columnas específicas
df2 <- flights %>% select(carrier:distance) # Selección de rango de columnas
df3 <- flights %>% select(-carrier, -flight) # Eliminar columnas específicas
df4 <- flights %>% select(-carrier: -flight) # Eliminar rango de columnas
df5 <- flights %>% select(aerolinea = carrier) # Selecciona una columna y le cambia el nombre
df6 <- flights %>% rename(aerolinea = carrier) # Cambia el nombre de una columna
La función Filter sirve para seleccionar renglones de un 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 <=
# Operadores lógicos: AND &, OR |, NOT !
df8 <- flights %>% filter(dep_delay >=500, dep_delay <=600) # Extrae renglones que cumplan con dos condiciones
df9 <- flights %>% slice(1000: 1099) # Extrae los números de los renglones indicados, sin importar sus valores
La función distinct sirve para eliminar renglones duplicados.
df10 <- distinct(flights) # Dejar solo los renglones diferentes, borra todos los repetidos.
La función merge sirve para juntar bases de datos.
bdgrande <- merge(flights, airlines, by="carrier")
bdgrande2 <- merge(bdgrande,planes, by="tailnum")
bdgrande_con_dist_mts <- mutate(bdgrande2, dist_mts = distance*1.609)
#Agrega variables nuevas caluladas a partir de variables existentes en la base de datos.
ejercicio1 <- bdgrande2 %>% filter(arr_delay>=120)
ejercicio2 <- bdgrande2 %>% filter(dest== "IAH" | dest == "HOU")
ejercicio3 <- bdgrande2 %>% filter(carrier %in% c("UA", "AA", "DL"))
ejercicio4 <- bdgrande2 %>% filter(month %in% c(7, 8, 9))
ejercicio4a <- bdgrande2 %>% filter(month == 7 | month == 8 | month == 9)
ejercicio5 <- bdgrande2 %>% filter(arr_delay>120 & dep_time == sched_dep_time)
ejercicio5a <- bdgrande2 %>% filter(arr_delay>120 & dep_delay<=0)
ejercicio6 <- bdgrande2 %>% filter(dep_delay>=60 & arr_delay<=-30)
ejercicio7 <- bdgrande2 %>% filter(dep_time %in% c("2400", "100", "200", "300", "400", "500", "600"))
ejercicio7a <- bdgrande2 %>% filter(dep_time==2400 | dep_time<=600)
ejercicio7b <- bdgrande2 %>% filter(hour %in% c("0", "1", "2", "3", "4", "5", "6"))
Similar a filter () pero en lugar de seleccionar renglones, los ordena de menor a mayor.
df11 <- arrange(bdgrande2, year.x, month, day)
Para acomodar de mayor a menor.
df12 <- arrange(bdgrande2, year.x, desc(month), day)
Colapsa una tabla a un sólo renglón
# Obtén el retraso promedio de salida de despegue de todos los vuelos
summarize(bdgrande2, mean(dep_delay, na.rm=TRUE))
## mean(dep_delay, na.rm = TRUE)
## 1 13.17979
Agrupa tabla basado en algunas columnas.
# Obtener el retraso promedio de despegue por día
por_dia <- group_by(bdgrande2, year.x, month, day)
summarize(por_dia, mean(dep_delay, na.rm=TRUE))
## `summarise()` has grouped output by 'year.x', 'month'. You can override using
## the `.groups` argument.
## # A tibble: 365 × 4
## # Groups: year.x, month [12]
## year.x month day `mean(dep_delay, na.rm = TRUE)`
## <int> <int> <int> <dbl>
## 1 2013 1 1 10.7
## 2 2013 1 2 14.4
## 3 2013 1 3 11.1
## 4 2013 1 4 10.0
## 5 2013 1 5 5.70
## 6 2013 1 6 7.98
## 7 2013 1 7 6.49
## 8 2013 1 8 3.10
## 9 2013 1 9 3.17
## 10 2013 1 10 1.89
## # ℹ 355 more rows
# La carga a 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>
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 (con decimales)
# chr: caractér (letras)
# date: fecha (en R va año-mes-dia)
# POSIXct:formato fecha y hora
class(flights)
## [1] "tbl_df" "tbl" "data.frame"
# Las 5 clases de objetos
# 1. numeric: Número real o décimal
# 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: base de datos
# Número de columnas
ncol(flights)
## [1] 19
# Numero de renglones
nrow(flights)
## [1] 336776
# Dimensión
dim(flights)
## [1] 336776 19
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)
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
##
En este trabajo pudimos utlizar las funciones más comunes del análisis exploratorio, el cual es el primer paso para cualquier trabajo de manipulación de datos.
# Consulta la estructura de cada data frame
# Para el data frame flights
data(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" ...
ncol(flights)
## [1] 19
nrow(flights)
## [1] 336776
dim(flights)
## [1] 336776 19
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>
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
##
¿Cuáles son los campos y sus tipos de datos? Los campos del conjunto de datos flights y sus tipos de datos son:
# Para el data frame weather
data(weather)
str(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" ...
ncol(weather)
## [1] 15
nrow(weather)
## [1] 26115
dim(weather)
## [1] 26115 15
head(weather)
## # A tibble: 6 × 15
## origin year month day hour temp dewp humid wind_dir wind_speed wind_gust
## <chr> <int> <int> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 EWR 2013 1 1 1 39.0 26.1 59.4 270 10.4 NA
## 2 EWR 2013 1 1 2 39.0 27.0 61.6 250 8.06 NA
## 3 EWR 2013 1 1 3 39.0 28.0 64.4 240 11.5 NA
## 4 EWR 2013 1 1 4 39.9 28.0 62.2 250 12.7 NA
## 5 EWR 2013 1 1 5 39.0 28.0 64.4 260 12.7 NA
## 6 EWR 2013 1 1 6 37.9 28.0 67.2 240 11.5 NA
## # ℹ 4 more variables: precip <dbl>, pressure <dbl>, visib <dbl>,
## # time_hour <dttm>
tail(weather)
## # A tibble: 6 × 15
## origin year month day hour temp dewp humid wind_dir wind_speed wind_gust
## <chr> <int> <int> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 LGA 2013 12 30 13 37.0 21.9 54.0 340 17.3 20.7
## 2 LGA 2013 12 30 14 36.0 19.9 51.8 340 13.8 21.9
## 3 LGA 2013 12 30 15 34.0 17.1 49.5 330 17.3 21.9
## 4 LGA 2013 12 30 16 32 15.1 49.2 340 15.0 23.0
## 5 LGA 2013 12 30 17 30.9 12.9 46.7 320 17.3 NA
## 6 LGA 2013 12 30 18 28.9 10.9 46.4 330 18.4 NA
## # ℹ 4 more variables: precip <dbl>, pressure <dbl>, visib <dbl>,
## # time_hour <dttm>
summary(weather)
## 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
¿Cuáles son los campos y sus tipos de datos? Los campos del conjunto de datos weather y sus tipos de datos son:
# Para el data frame planes
data(planes)
str(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" ...
ncol(planes)
## [1] 9
nrow(planes)
## [1] 3322
dim(planes)
## [1] 3322 9
head(planes)
## # A tibble: 6 × 9
## tailnum year type manufacturer model engines seats speed engine
## <chr> <int> <chr> <chr> <chr> <int> <int> <int> <chr>
## 1 N10156 2004 Fixed wing multi … EMBRAER EMB-… 2 55 NA Turbo…
## 2 N102UW 1998 Fixed wing multi … AIRBUS INDU… A320… 2 182 NA Turbo…
## 3 N103US 1999 Fixed wing multi … AIRBUS INDU… A320… 2 182 NA Turbo…
## 4 N104UW 1999 Fixed wing multi … AIRBUS INDU… A320… 2 182 NA Turbo…
## 5 N10575 2002 Fixed wing multi … EMBRAER EMB-… 2 55 NA Turbo…
## 6 N105UW 1999 Fixed wing multi … AIRBUS INDU… A320… 2 182 NA Turbo…
tail(planes)
## # A tibble: 6 × 9
## tailnum year type manufacturer model engines seats speed engine
## <chr> <int> <chr> <chr> <chr> <int> <int> <int> <chr>
## 1 N996DL 1991 Fixed wing multi … MCDONNELL D… MD-88 2 142 NA Turbo…
## 2 N997AT 2002 Fixed wing multi … BOEING 717-… 2 100 NA Turbo…
## 3 N997DL 1992 Fixed wing multi … MCDONNELL D… MD-88 2 142 NA Turbo…
## 4 N998AT 2002 Fixed wing multi … BOEING 717-… 2 100 NA Turbo…
## 5 N998DL 1992 Fixed wing multi … MCDONNELL D… MD-88 2 142 NA Turbo…
## 6 N999DN 1992 Fixed wing multi … MCDONNELL D… MD-88 2 142 NA Turbo…
summary(planes)
## 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
##
##
##
##
¿Cuáles son los campos y sus tipos de datos? Los campos del conjunto de datos planes y sus tipos de datos son:
# Para el data frame airports
data(airports)
str(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()
## .. )
ncol(airports)
## [1] 8
nrow(airports)
## [1] 1458
dim(airports)
## [1] 1458 8
head(airports)
## # A tibble: 6 × 8
## faa name lat lon alt tz dst tzone
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr> <chr>
## 1 04G Lansdowne Airport 41.1 -80.6 1044 -5 A America/Ne…
## 2 06A Moton Field Municipal Airport 32.5 -85.7 264 -6 A America/Ch…
## 3 06C Schaumburg Regional 42.0 -88.1 801 -6 A America/Ch…
## 4 06N Randall Airport 41.4 -74.4 523 -5 A America/Ne…
## 5 09J Jekyll Island Airport 31.1 -81.4 11 -5 A America/Ne…
## 6 0A9 Elizabethton Municipal Airport 36.4 -82.2 1593 -5 A America/Ne…
tail(airports)
## # A tibble: 6 × 8
## faa name lat lon alt tz dst tzone
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr> <chr>
## 1 ZTY Boston Back Bay Station 42.3 -71.1 20 -5 A America/New_Yo…
## 2 ZUN Black Rock 35.1 -109. 6454 -7 A America/Denver
## 3 ZVE New Haven Rail Station 41.3 -72.9 7 -5 A America/New_Yo…
## 4 ZWI Wilmington Amtrak Station 39.7 -75.6 0 -5 A America/New_Yo…
## 5 ZWU Washington Union Station 38.9 -77.0 76 -5 A America/New_Yo…
## 6 ZYP Penn Station 40.8 -74.0 35 -5 A America/New_Yo…
summary(airports)
## 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
¿Cuáles son los campos y sus tipos de datos? Los campos del conjunto de datos airports y sus tipos de datos son:
# Para el data frame airlines
data(airlines)
str(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" ...
ncol(airlines)
## [1] 2
nrow(airlines)
## [1] 16
dim(airlines)
## [1] 16 2
head(airlines)
## # A tibble: 6 × 2
## carrier name
## <chr> <chr>
## 1 9E Endeavor Air Inc.
## 2 AA American Airlines Inc.
## 3 AS Alaska Airlines Inc.
## 4 B6 JetBlue Airways
## 5 DL Delta Air Lines Inc.
## 6 EV ExpressJet Airlines Inc.
tail(airlines)
## # A tibble: 6 × 2
## carrier name
## <chr> <chr>
## 1 OO SkyWest Airlines Inc.
## 2 UA United Air Lines Inc.
## 3 US US Airways Inc.
## 4 VX Virgin America
## 5 WN Southwest Airlines Co.
## 6 YV Mesa Airlines Inc.
summary(airlines)
## carrier name
## Length:16 Length:16
## Class :character Class :character
## Mode :character Mode :character
¿Cuáles son los campos y sus tipos de datos?
Los campos del conjunto de datos airlines y sus tipos de datos son:
#Al consultar l DataFrame nos permite visualizar la base de datos *flights*.
view(flights)
#la media (Mean) de la distancia es de 1040 millas, lo que indica que, en promedio, los vuelos en este conjunto de datos recorren una distancia de 1040 millas.
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
##
df <- flights %>%
select(carrier, distance, origin, dest) %>%
filter(distance > mean(distance, na.rm= TRUE)) %>%
arrange(desc(distance))
print(df)
## # A tibble: 127,665 × 4
## carrier distance origin dest
## <chr> <dbl> <chr> <chr>
## 1 HA 4983 JFK HNL
## 2 HA 4983 JFK HNL
## 3 HA 4983 JFK HNL
## 4 HA 4983 JFK HNL
## 5 HA 4983 JFK HNL
## 6 HA 4983 JFK HNL
## 7 HA 4983 JFK HNL
## 8 HA 4983 JFK HNL
## 9 HA 4983 JFK HNL
## 10 HA 4983 JFK HNL
## # ℹ 127,655 more rows
# Encuentra la suma y la media de las distancias recorridas por carrier, elimina los NA’S e interpreta que significa la suma y la media de las distancias recorridas.
dfDR <- df %>%
group_by(carrier, origin, dest) %>%
summarise(suma_distancia= sum(distance, na.rm= TRUE),
media_distancia= mean(distance, na.rm= TRUE)) %>%
# Ordena en forma descendente por distancia recorrida
arrange(desc(carrier), desc(suma_distancia))
## `summarise()` has grouped output by 'carrier', 'origin'. You can override using
## the `.groups` argument.
dfDR
## # A tibble: 150 × 5
## # Groups: carrier, origin [26]
## carrier origin dest suma_distancia media_distancia
## <chr> <chr> <chr> <dbl> <dbl>
## 1 WN EWR HOU 1377136 1411
## 2 WN LGA DEN 1158300 1620
## 3 WN EWR DEN 1105845 1605
## 4 WN EWR PHX 919323 2133
## 5 WN LGA HOU 606900 1428
## 6 WN EWR AUS 448192 1504
## 7 WN EWR MSY 347766 1167
## 8 VX JFK LAX 4447575 2475
## 9 VX JFK SFO 3656604 2586
## 10 VX EWR SFO 2008395 2565
## # ℹ 140 more rows
###6. Identificar aerolíneas líderes en los aeropuertos
#Se identifica si las aerolíneas líderes son las mismas en los tres aeropuertos cuyo origen es Nueva York ya sea el John F. Kennedy (JFK), el de LaGuardia (LGA) o el de Newark Liberty (EWR)
df_JFK <- dfDR %>%
filter(origin == "JFK") %>% arrange(carrier, desc(suma_distancia))
df_JFK
## # A tibble: 69 × 5
## # Groups: carrier, origin [8]
## carrier origin dest suma_distancia media_distancia
## <chr> <chr> <chr> <dbl> <dbl>
## 1 9E JFK MSY 515352 1182
## 2 9E JFK DFW 507715 1391
## 3 9E JFK MCI 307188 1113
## 4 9E JFK SAT 84111 1587
## 5 9E JFK AUS 3042 1521
## 6 AA JFK LAX 7962075 2475
## 7 AA JFK SFO 3677292 2586
## 8 AA JFK MIA 2418669 1089
## 9 AA JFK SJU 1756202 1598
## 10 AA JFK LAS 1436472 2248
## # ℹ 59 more rows
df_LGA <- dfDR %>%
filter(origin == "LGA") %>% arrange(carrier, desc(suma_distancia))
df_LGA
## # A tibble: 31 × 5
## # Groups: carrier, origin [9]
## carrier origin dest suma_distancia media_distancia
## <chr> <chr> <chr> <dbl> <dbl>
## 1 9E LGA MCI 94095 1107
## 2 9E LGA SRQ 81666 1047
## 3 9E LGA RSW 72360 1080
## 4 9E LGA DFW 19446 1389
## 5 9E LGA MSY 1183 1183
## 6 AA LGA DFW 6717204 1389
## 7 AA LGA MIA 4323720 1096
## 8 B6 LGA FLL 2354288 1076
## 9 B6 LGA RSW 394200 1080
## 10 B6 LGA SRQ 382155 1047
## # ℹ 21 more rows
df_EWR <- dfDR %>%
filter(origin == "EWR") %>% arrange(carrier, desc(suma_distancia))
df_EWR
## # A tibble: 50 × 5
## # Groups: carrier, origin [9]
## carrier origin dest suma_distancia media_distancia
## <chr> <chr> <chr> <dbl> <dbl>
## 1 AA EWR DFW 2818088 1372
## 2 AA EWR MIA 1158780 1085
## 3 AA EWR LAX 895710 2454
## 4 AS EWR SEA 1715028 2402
## 5 B6 EWR FLL 1476090 1065
## 6 B6 EWR SJU 609432 1608
## 7 B6 EWR RSW 389820 1068
## 8 DL EWR SLC 697026 1969
## 9 EV EWR MCI 1480752 1092
## 10 EV EWR OMA 852768 1134
## # ℹ 40 more rows
Las aerolíneas que dominan en términos de millas recorridas desde los aeropuertos de Nueva York son Southwest Airlines (WN) para destinos nacionales y Virgin America (VX) para vuelos de larga distancia. Este patrón se debe a que Southwest Airlines se enfoca en rutas nacionales, operando vuelos frecuentes desde EWR y LGA hacia destinos como Houston (HOU) y Denver (DEN), mientras que Virgin America se especializa en rutas transcontinentales desde JFK hacia Los Ángeles (LAX) y San Francisco (SFO), lo que resulta en una mayor distancia promedio recorrida por vuelo. La evidencia se encuentra en el análisis del dataframe flights, donde se observa que la suma de distancias recorridas por WN desde EWR a HOU es de 1377136 millas con una media de 1411 millas por vuelo, y la suma de distancias recorridas por VX desde JFK a LAX es de 4447575 millas con una media de 2475 millas, representando las distancias más largas registradas para vuelos nacionales e internacionales respectivamente.
#Se necesita saber de cada vuelo, la aerolínea, el aeropuerto de origen y el aeropuerto destino.
dfaerolinea <- df1 %>%
left_join(airlines, by= "carrier")
dfaerolinea
## # A tibble: 336,776 × 3
## carrier flight name
## <chr> <int> <chr>
## 1 UA 1545 United Air Lines Inc.
## 2 UA 1714 United Air Lines Inc.
## 3 AA 1141 American Airlines Inc.
## 4 B6 725 JetBlue Airways
## 5 DL 461 Delta Air Lines Inc.
## 6 UA 1696 United Air Lines Inc.
## 7 B6 507 JetBlue Airways
## 8 EV 5708 ExpressJet Airlines Inc.
## 9 B6 79 JetBlue Airways
## 10 AA 301 American Airlines Inc.
## # ℹ 336,766 more rows
dfaeropuerto_oyd <- flights %>%
select(carrier, origin, dest)
dfaeropuerto_oyd
## # A tibble: 336,776 × 3
## carrier origin dest
## <chr> <chr> <chr>
## 1 UA EWR IAH
## 2 UA LGA IAH
## 3 AA JFK MIA
## 4 B6 JFK BQN
## 5 DL LGA ATL
## 6 UA EWR ORD
## 7 B6 EWR FLL
## 8 EV LGA IAD
## 9 B6 JFK MCO
## 10 AA LGA ORD
## # ℹ 336,766 more rows
# cantidad de vuelos por cada destino
dfcantidad <- flights %>%
group_by(carrier) %>%
summarise(num_flights= n()) %>%
arrange(desc(num_flights))
dfcantidad
## # A tibble: 16 × 2
## carrier num_flights
## <chr> <int>
## 1 UA 58665
## 2 B6 54635
## 3 EV 54173
## 4 DL 48110
## 5 AA 32729
## 6 MQ 26397
## 7 US 20536
## 8 9E 18460
## 9 WN 12275
## 10 VX 5162
## 11 FL 3260
## 12 AS 714
## 13 F9 685
## 14 YV 601
## 15 HA 342
## 16 OO 32
#Posteriormente Agregar el nombre de la aerolínea al data frame anterior.
dfnombre <- dfcantidad %>%
left_join(airlines, by= "carrier")
dfnombre
## # A tibble: 16 × 3
## carrier num_flights name
## <chr> <int> <chr>
## 1 UA 58665 United Air Lines Inc.
## 2 B6 54635 JetBlue Airways
## 3 EV 54173 ExpressJet Airlines Inc.
## 4 DL 48110 Delta Air Lines Inc.
## 5 AA 32729 American Airlines Inc.
## 6 MQ 26397 Envoy Air
## 7 US 20536 US Airways Inc.
## 8 9E 18460 Endeavor Air Inc.
## 9 WN 12275 Southwest Airlines Co.
## 10 VX 5162 Virgin America
## 11 FL 3260 AirTran Airways Corporation
## 12 AS 714 Alaska Airlines Inc.
## 13 F9 685 Frontier Airlines Inc.
## 14 YV 601 Mesa Airlines Inc.
## 15 HA 342 Hawaiian Airlines Inc.
## 16 OO 32 SkyWest Airlines Inc.
dfAYD <- flights %>%
select(carrier, dest, sched_dep_time) %>%
left_join(airlines, by= "carrier")
hora <- dfAYD %>%
mutate(clas_horario = case_when(
between(sched_dep_time, 600, 1159) ~ "Mañana",
between(sched_dep_time, 1200, 1859) ~ "Tarde",
between(sched_dep_time, 1900, 2400) ~ "Noche",
TRUE ~ "Madrugada"
))
hora
## # A tibble: 336,776 × 5
## carrier dest sched_dep_time name clas_horario
## <chr> <chr> <int> <chr> <chr>
## 1 UA IAH 515 United Air Lines Inc. Madrugada
## 2 UA IAH 529 United Air Lines Inc. Madrugada
## 3 AA MIA 540 American Airlines Inc. Madrugada
## 4 B6 BQN 545 JetBlue Airways Madrugada
## 5 DL ATL 600 Delta Air Lines Inc. Mañana
## 6 UA ORD 558 United Air Lines Inc. Madrugada
## 7 B6 FLL 600 JetBlue Airways Mañana
## 8 EV IAD 600 ExpressJet Airlines Inc. Mañana
## 9 B6 MCO 600 JetBlue Airways Mañana
## 10 AA ORD 600 American Airlines Inc. Mañana
## # ℹ 336,766 more rows
dfCDV <- hora %>%
group_by(carrier, dest, clas_horario) %>%
summarise(num_flights = n()) %>%
arrange(carrier, dest, clas_horario)
## `summarise()` has grouped output by 'carrier', 'dest'. You can override using
## the `.groups` argument.
dfCDV
## # A tibble: 741 × 4
## # Groups: carrier, dest [314]
## carrier dest clas_horario num_flights
## <chr> <chr> <chr> <int>
## 1 9E ATL Mañana 59
## 2 9E AUS Tarde 2
## 3 9E AVL Mañana 10
## 4 9E BGR Noche 1
## 5 9E BNA Mañana 6
## 6 9E BNA Noche 1
## 7 9E BNA Tarde 467
## 8 9E BOS Mañana 271
## 9 9E BOS Noche 94
## 10 9E BOS Tarde 549
## # ℹ 731 more rows
# Destinos a los que vuela "American Airlines Inc." durante la Madrugada
dfDaa <- hora %>%
select(carrier,name, dest,clas_horario) %>%
filter(carrier == "AA", clas_horario == "Madrugada") %>%
group_by(carrier,name, dest,clas_horario)
dfDaa
## # A tibble: 365 × 4
## # Groups: carrier, name, dest, clas_horario [1]
## carrier name dest clas_horario
## <chr> <chr> <chr> <chr>
## 1 AA American Airlines Inc. MIA Madrugada
## 2 AA American Airlines Inc. MIA Madrugada
## 3 AA American Airlines Inc. MIA Madrugada
## 4 AA American Airlines Inc. MIA Madrugada
## 5 AA American Airlines Inc. MIA Madrugada
## 6 AA American Airlines Inc. MIA Madrugada
## 7 AA American Airlines Inc. MIA Madrugada
## 8 AA American Airlines Inc. MIA Madrugada
## 9 AA American Airlines Inc. MIA Madrugada
## 10 AA American Airlines Inc. MIA Madrugada
## # ℹ 355 more rows
# Conocer los aviones que usa "American Airlines Inc."
dfAAI <- flights %>%
left_join(planes, by = "tailnum") %>%
filter(carrier == "AA" & !is.na(type)) %>%
group_by(carrier, type, engine, seats) %>%
summarise(num_flights = n()) %>%
arrange(desc(num_flights))
## `summarise()` has grouped output by 'carrier', 'type', 'engine'. You can
## override using the `.groups` argument.
dfAAI
## # A tibble: 22 × 5
## # Groups: carrier, type, engine [6]
## carrier type engine seats num_flights
## <chr> <chr> <chr> <int> <int>
## 1 AA Fixed wing multi engine Turbo-fan 255 4257
## 2 AA Fixed wing multi engine Turbo-fan 172 3857
## 3 AA Fixed wing multi engine Turbo-fan 178 501
## 4 AA Fixed wing single engine Reciprocating 2 463
## 5 AA Fixed wing multi engine Turbo-fan 330 450
## 6 AA Fixed wing multi engine Reciprocating 8 92
## 7 AA Fixed wing single engine Reciprocating 7 63
## 8 AA Fixed wing single engine Reciprocating 16 63
## 9 AA Fixed wing single engine Reciprocating 4 56
## 10 AA Fixed wing single engine 4 Cycle 4 45
## # ℹ 12 more rows
#Se solicita analizar para la aerolínea American Airlines si los vuelos que tienen retraso en la partida también tienen retraso en la hora de llegada.Realiza una visualización con una gráfica Scatterplot.
plot(flights$dep_delay, flights$arr_delay,
main = "Retrasos en la partida y llegada para la aerolínea American Airlines",
xlab = "Retrasos en la partida",
ylab = "Retrasos en la llegada",
col = "blue",
pch = 1
)
##Visualiza la tendencia de la temperatura durante los primeros 15 días del mes de Enero en los vuelos que parten del aeropuerto “Newark, EWR”, utilizar una gráfica de línea.
flight_weather <-flights %>% inner_join(weather, by = c("origin" = "origin", "year" = "year", "month" = "month", "day" = "day", "hour" = "hour"))
flight_weather<- mutate(flight_weather, celcius= ((temp-32)*(5/9)))
flight_weather<- mutate(flight_weather, dw_celcius= ((dewp-32)*(5/9)))
flight_weather<- mutate(flight_weather, khm= (wind_speed*1.60934))
flight_weather<- mutate(flight_weather, mm= (precip*25.4))
flight_weather<- mutate(flight_weather, km= (visib*1.60934))
temp_promedio <- flight_weather %>%
filter(origin == "EWR") %>%
mutate(date = as.Date(paste(year, month, day, sep = "-"))) %>%
select(date, celcius) %>%
group_by(date) %>%
summarise(temp_promedio = mean(celcius, na.rm = TRUE))
temp_promedio_enero <- temp_promedio %>%
filter(between(date, as.Date("2013-01-01"), as.Date("2013-01-15")))
plot(temp_promedio_enero$date, temp_promedio_enero$temp_promedio,
type = "l",
main = "Temperatura durante los primeros 15 días de enero en (Newark)",
xlab = "Fecha",
ylab = "Temperatura Promedio (C°)")
#Visualiza la temperatura más frecuente en los primeros 15 días del mes de Enero, utilizar un histrograma
weather_enero <- flight_weather %>%
filter(month == 1, day >= 1, day <= 15)
weather_enero$date <- as.Date(paste(weather_enero$year, weather_enero$month, weather_enero$day, sep = "-"))
temp_promedio <- weather_enero %>%
group_by(date) %>%
summarize(temp_promedio = mean(celcius, na.rm = TRUE))
ggplot(data = temp_promedio, aes(x = temp_promedio)) +
geom_histogram(binwidth = 5, fill = "purple", color = "green") +
labs(title = "Histograma de Promedio de Temperaturas del 1 al 15 de Enero",
x = "Promedio de Temperatura (C°)",
y = "Frecuencia")
#Utiliza Facets para observar cómo varía la temperatura en cada mes en él histograma del punto anterior
ggplot(data = flight_weather, aes(x = celcius)) +
geom_histogram(binwidth = 5, color = "red") +
facet_wrap(~ month, nrow = 4)
## Warning: Removed 17 rows containing non-finite outside the scale range
## (`stat_bin()`).
#Número de vuelos que salieron de Nueva York en 2013 por aerolínea (mostrar solamente las 10 aerolíneas con más vuelos), utilizar gráfica de barras.
flights_table <- flights %>%
group_by(carrier) %>%
summarize(number = n())
ggplot(data = flights_table, mapping = aes(x = carrier, y = number)) +
geom_col()
#Visualiza el punto anterior en una gráfica de pie.
pie(flights_table$number,
labels = flights_table$carrier,
main = "Proporción de vuelos por aerolínea",
col = rainbow(length(flights_table$carrier)),
cex = 0.5)
#Relaciona el data frame flights con el data frame airports a través del campo destino ¿cómo lograr estas relación?
flights_airports <- flights %>%
left_join(airports, by = c("dest" = "faa"))
top_carriers <- flights %>%
inner_join(airports, by = c("origin" = "faa"))
ggplot(data = top_carriers, mapping = aes(x = carrier, fill = name)) +
geom_bar()
ggplot(data = top_carriers, mapping = aes(x = carrier, fill = name)) +
geom_bar(position = "dodge")
ggplot(data = top_carriers, mapping = aes(x = carrier, fill = name)) +
geom_bar() +
facet_grid(name ~ .)
FALTA
Describe el valor de la integridad.
Enciclopedia Significados, E. (2023, 5 mayo). Qué es Integridad (y su significado). Enciclopedia Significados. https://www.significados.com/integridad/
¿ cómo puedes actuar con respeto y honestidad en los negocios y en el uso de datos cuando realices análisis de datos y estés en contacto con los datos de una empresa?
Alma:Actuar con respeto y honestidad en los negocios y al manejar datos es crucial para mantener la confianza y la integridad. La honestidad promueve prácticas sanas y organizaciones sólidas (Argandoña, 2022), mientras que adherirse a principios éticos asegura transparencia y evita prácticas corruptas, contribuyendo al desarrollo sostenible (abriendomercados.com, 2023). Además, la cortesía y el respeto fortalecen relaciones duraderas, fundamentales para el éxito empresarial (eslabonesdenegocio.com). En resumen, estos valores no solo benefician a las empresas éticamente, sino que también impulsan el crecimiento y la imagen positiva en el mercado.
Referencias: + Argandoña, A. (2022). La honestidad en la empresa. IESE Business School Blog. https://blog.iese.edu/antonioargandona/2022/06/21/la-honestidad-en-la-empresa/ + Ética empresarial en negocios internacionales: códigos y principios éticos. (2023). Abriendo Mercados. https://abriendomercados.com/etica-empresarial-en-negocios-internacionales-codigos-y-principios-eticos/ + Cortesía y respeto como pilares de las relaciones de negocio. Eslabones de Negocio. https://eslabonesdenegocio.com/cortesia-y-respeto-como-pilares-de-las-relaciones-de-negocio/
flights <- flights
weather <- weather
planes <- planes
airports <- airports
airlines <- airlines
bdgrande <-merge(flights,airlines, by="carrier")
bdgrande2 <-left_join(bdgrande,planes, by="tailnum")
bdgrande3 <- left_join(bdgrande2,weather,by=c("origin","time_hour"))
bdgrande4 <- left_join(bdgrande3, airports, by = c("origin" = "faa"))
bdgrande5 <- left_join(bdgrande4, airports, by = c("dest" = "faa"))
dim(bdgrande5)
## [1] 336776 55
summary_delay <- bdgrande5 %>%
group_by(origin) %>%
summarise(avg_delay = mean(dep_delay, na.rm = TRUE),
total_flights = n(),
total_delayed_flights = sum(dep_delay > 0, na.rm = TRUE),
perc_delayed_flights = total_delayed_flights / total_flights * 100)
summary_delay
## # A tibble: 3 × 5
## origin avg_delay total_flights total_delayed_flights perc_delayed_flights
## <chr> <dbl> <int> <int> <dbl>
## 1 EWR 15.1 120835 52711 43.6
## 2 JFK 12.1 111279 42031 37.8
## 3 LGA 10.3 104662 33690 32.2
bdregresion<-bdgrande5
summary(bdregresion$dep_delay)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -43.00 -5.00 -2.00 12.64 11.00 1301.00 8255
IQR<-(bdregresion$dep_delay)
LI<-(-5-1.5)*15
LI
## [1] -97.5
LS<-(10+1.5)*15
LS
## [1] 172.5
bdregresion<-bdregresion%>%
filter(dep_delay>-27.5,dep_delay<32.5)
summary(bdregresion$dep_delay)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -27.00000 -5.00000 -3.00000 0.09264 2.00000 32.00000