Definición
La base de datos nycflights13 contiene información solo sobre los vuelos que salieron de los tres principales aeropuertos de la ciudad de Nueva York en 2013:
1. JFK (John F. Kennedy International Airport)
2. LGA (LaGuardia Airport)
3. EWR (Newark Liberty International Airport)
Definición
La tabla principal flights tiene las siguientes columnas:
1. year: Año del vuelo (2013 en todos los casos).
2. month: Mes del vuelo (1 = enero, 12 = diciembre).
3. day: Día del vuelo.
4. dep_time: Hora de salida real del vuelo (en formato HHMM).
5. sched_dep_time: Hora de salida programada (en formato HHMM).
6. dep_delay: Retraso de salida en minutos.
7. arr_time: Hora de llegada real del vuelo (en formato HHMM).
8. sched_arr_time: Hora de llegada programada (en formato HHMM).
9. arr_delay: Retraso de llegada en minutos.
10. carrier: Código de la aerolínea.
11. flight: Número de vuelo.
12. tailnum: Número de matrícula del avión.
13. origin: Aeropuerto de origen (EWR, JFK, LGA).
14. dest: Aeropuerto de destino.
15. air_time: Tiempo de vuelo en minutos.
16. distance: Distancia del vuelo en millas.
17. hour: Hora de salida programada (en formato decimal).
18. minute: Minuto de salida programada (en formato decimal).
19. time_hour: Fecha y hora de la salida programada en formato datetime.
Definición
Instalar el paquete (si no está instalado previamente):
1. install.packages("nycflights13")
Definición
Cargar la librería en tu entorno de trabajo:
library(nycflights13)
Definición
La función colnames( ) en R se utiliza para obtener o establecer los nombres de las columnas de un marco de datos (data frame) o matriz.
Ejemplo Si quieres ver los nombres de las columnas de un data frame, puedes usar colnames(). En este ejemplo, usamos el data frame flights del paquete nycflights13:
colnames(flights)
## [1] "year" "month" "day" "dep_time"
## [5] "sched_dep_time" "dep_delay" "arr_time" "sched_arr_time"
## [9] "arr_delay" "carrier" "flight" "tailnum"
## [13] "origin" "dest" "air_time" "distance"
## [17] "hour" "minute" "time_hour"
Ejemplo Puedes cambiar los nombres de las columnas asignando un vector con los nuevos nombres.
# Cambiar los nombres de las columnas 'year' y 'month'
colnames(flights)[1:2] <- c("año", "mes")
# Verificar los cambios
colnames(flights)
## [1] "año" "mes" "day" "dep_time"
## [5] "sched_dep_time" "dep_delay" "arr_time" "sched_arr_time"
## [9] "arr_delay" "carrier" "flight" "tailnum"
## [13] "origin" "dest" "air_time" "distance"
## [17] "hour" "minute" "time_hour"
# Cambiar los nombres de las dos primeras columnas y la quinta columna de 'flights'
colnames(flights)[c(1, 2, 4,5)] <- c("año", "mes", "salida_real","salida_programada")
# Verificar los cambios
colnames(flights)
## [1] "año" "mes" "day"
## [4] "salida_real" "salida_programada" "dep_delay"
## [7] "arr_time" "sched_arr_time" "arr_delay"
## [10] "carrier" "flight" "tailnum"
## [13] "origin" "dest" "air_time"
## [16] "distance" "hour" "minute"
## [19] "time_hour"
Definición
Cargar la librería en tu entorno de trabajo:
library(dplyr)
Definición
La función filter( ) se utiliza para seleccionar filas que cumplen una o más condiciones en un data frame.
Ejemplo
# Seleccionar vuelos que partieron del aeropuerto JFK
salida_jfk <- filter(flights, origin == "JFK")
salida_jfk
## # A tibble: 111,279 × 19
## año mes day salida_real salida_programada dep_delay arr_time
## <int> <int> <int> <int> <int> <dbl> <int>
## 1 2013 1 1 542 540 2 923
## 2 2013 1 1 544 545 -1 1004
## 3 2013 1 1 557 600 -3 838
## 4 2013 1 1 558 600 -2 849
## 5 2013 1 1 558 600 -2 853
## 6 2013 1 1 558 600 -2 924
## 7 2013 1 1 559 559 0 702
## 8 2013 1 1 606 610 -4 837
## 9 2013 1 1 611 600 11 945
## 10 2013 1 1 613 610 3 925
## # ℹ 111,269 more rows
## # ℹ 12 more variables: sched_arr_time <int>, 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>
Ejemplo
Los vuelos cancelas son aquellos que no tienen asignada dep_time o arr_time.
# Filtrar vuelos cancelados: aquellos donde 'salida_real' o 'arr_time' son NA
vuelos_cancelados <- flights %>%
filter(is.na(salida_real) | is.na(arr_time))
vuelos_cancelados
## # A tibble: 8,713 × 19
## año mes day salida_real salida_programada dep_delay arr_time
## <int> <int> <int> <int> <int> <dbl> <int>
## 1 2013 1 1 2016 1930 46 NA
## 2 2013 1 1 NA 1630 NA NA
## 3 2013 1 1 NA 1935 NA NA
## 4 2013 1 1 NA 1500 NA NA
## 5 2013 1 1 NA 600 NA NA
## 6 2013 1 2 2041 2045 -4 NA
## 7 2013 1 2 2145 2129 16 NA
## 8 2013 1 2 NA 1540 NA NA
## 9 2013 1 2 NA 1620 NA NA
## 10 2013 1 2 NA 1355 NA NA
## # ℹ 8,703 more rows
## # ℹ 12 more variables: sched_arr_time <int>, 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>
Definición
La función arrange( ) se utiliza para ordenar las filas de un data frame en función de una o más variables.
Ejemplo
# Ordenar vuelos según la duración del vuelo (distance) de manera ascendente
dia_orden <- flights %>%
arrange(day)
dia_orden
## # A tibble: 336,776 × 19
## año mes day salida_real salida_programada dep_delay arr_time
## <int> <int> <int> <int> <int> <dbl> <int>
## 1 2013 1 1 517 515 2 830
## 2 2013 1 1 533 529 4 850
## 3 2013 1 1 542 540 2 923
## 4 2013 1 1 544 545 -1 1004
## 5 2013 1 1 554 600 -6 812
## 6 2013 1 1 554 558 -4 740
## 7 2013 1 1 555 600 -5 913
## 8 2013 1 1 557 600 -3 709
## 9 2013 1 1 557 600 -3 838
## 10 2013 1 1 558 600 -2 753
## # ℹ 336,766 more rows
## # ℹ 12 more variables: sched_arr_time <int>, 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>
Ejemplo
# Ordenar vuelos según el día (day) y la hora de salida (dep_time)
salida_real_orden <- flights %>%
arrange(day, -salida_real)
salida_real_orden
## # A tibble: 336,776 × 19
## año mes day salida_real salida_programada dep_delay arr_time
## <int> <int> <int> <int> <int> <dbl> <int>
## 1 2013 6 1 2359 2359 0 332
## 2 2013 7 1 2359 2049 190 239
## 3 2013 4 1 2358 2359 -1 350
## 4 2013 8 1 2358 2245 73 112
## 5 2013 3 1 2357 2355 2 451
## 6 2013 1 1 2356 2359 -3 425
## 7 2013 4 1 2356 2355 1 359
## 8 2013 5 1 2356 2359 -3 324
## 9 2013 2 1 2355 2359 -4 441
## 10 2013 5 1 2355 2359 -4 326
## # ℹ 336,766 more rows
## # ℹ 12 more variables: sched_arr_time <int>, 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>
Definición
La función select( ) se utiliza para elegir columnas específicas de un data frame, permitiendo así reducir el número de columnas que se muestran o trabajan en un análisis.
Ejemplo
# Seleccionar las columnas day y salida_real del dataset flights y ordenarlas por day
vuelos_seleccionados <- flights %>%
select(day, salida_real, distance) %>%
arrange(day, salida_real)
vuelos_seleccionados
## # A tibble: 336,776 × 3
## day salida_real distance
## <int> <int> <dbl>
## 1 1 1 2586
## 2 1 2 1617
## 3 1 2 1598
## 4 1 4 1069
## 5 1 5 1617
## 6 1 9 2475
## 7 1 9 1576
## 8 1 12 1076
## 9 1 12 1617
## 10 1 13 1617
## # ℹ 336,766 more rows
Definición
La función mutate( ) se utiliza para añadir nuevas columnas o modificar las existentes en un data frame. Las nuevas columnas pueden ser el resultado de cálculos basados en las columnas actuales.
Ejemplo
# Añadir una nueva columna que convierta la distancia de millas a kilómetros
vuelos_modificados <- flights %>%
mutate(distance_km = distance * 1.60934)
vuelos_modificados
## # A tibble: 336,776 × 20
## año mes day salida_real salida_programada dep_delay arr_time
## <int> <int> <int> <int> <int> <dbl> <int>
## 1 2013 1 1 517 515 2 830
## 2 2013 1 1 533 529 4 850
## 3 2013 1 1 542 540 2 923
## 4 2013 1 1 544 545 -1 1004
## 5 2013 1 1 554 600 -6 812
## 6 2013 1 1 554 558 -4 740
## 7 2013 1 1 555 600 -5 913
## 8 2013 1 1 557 600 -3 709
## 9 2013 1 1 557 600 -3 838
## 10 2013 1 1 558 600 -2 753
## # ℹ 336,766 more rows
## # ℹ 13 more variables: sched_arr_time <int>, 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>,
## # distance_km <dbl>
Definición
La función summarise( ) se utiliza para colapsar un data frame en una sola fila, aplicando funciones resumen (sum, mean, median, etc.) a las columnas seleccionadas. Generalmente se usa junto con group_by().
Ejemplo
# Calcular el promedio de la distancia de los vuelos en todo el conjunto de datos
resumen_general <- flights %>%
summarise(promedio_distancia = mean(distance, na.rm = TRUE), total_vuelos = n())
resumen_general
## # A tibble: 1 × 2
## promedio_distancia total_vuelos
## <dbl> <int>
## 1 1040. 336776
Ejemplo
# Calcular el promedio de distancia de vuelos por día
resumen_vuelos <- flights %>%
group_by(day) %>%
summarise(promedio_distancia = mean(distance, na.rm = TRUE))
resumen_vuelos
## # A tibble: 31 × 2
## day promedio_distancia
## <int> <dbl>
## 1 1 1039.
## 2 2 1047.
## 3 3 1041.
## 4 4 1038.
## 5 5 1038.
## 6 6 1041.
## 7 7 1037.
## 8 8 1032.
## 9 9 1039.
## 10 10 1036.
## # ℹ 21 more rows
Evaluación 2
Debe evaluar la calidad del servicio prestado en tres aeropuertos (JFK, LGA, EWR) utilizando para ello el conjunto de datos de vuelos “flights”. Recuerda utilizar las librerias nycflights13, dplyr y ggplto2, para estudiar la eficiencia de cada aeropuerto:
Utiliza summarise( ) y group_by( ) para contar el número de vuelos por aeropuerto y determinar cuál tiene el mayor tráfico,
Agrupa los datos por aeropuerto y calcula el promedio de retraso en las salidas para cada uno.
Calcula la desviación estándar sd( ) del retraso en las arr_time y dep_delay para cada aeropuerto y determina cuál tiene la mayor variabilidad.
Crea un gráfico de barras para visualizar la distribución promedio por mes del dep_delay por aeropuerto.
Agrupa los datos por aeropuerto y mes, y luego visualiza con un gráfico de líneas cómo cambia el retraso promedio a lo largo del año.
Calcula el porcentaje de vuelos cancelados por aeropuerto y determina cuál tiene la menor tasa de cancelaciones.
Define los vuelos “a tiempo” como aquellos con un retraso de salida (dep_delay) de 0 o menos minutos, y calcula el porcentaje de estos vuelos por aeropuerto.
Identifica cuál es el avión (por número de cola tailnum) más utilizado en cada aeropuerto.
Elabora una conclución respecto a la eficiencia de los aeropuesrtos EWR, JFK, LGA.
El trabajo debe enviarse a revisión a través del ambiente de aprendizaje y en formato pdf.