Introducción

Conocer la base de datos con la que trabajaremos a detalle es el primer paso para comenzar cualquier análisis. En este reporte conoceremos la estructura y composición de Flights, usando la librería de (dplyr), la cual contiene los paquetes (tidyverse) y (nycflights13). Los paquetes nos permitirán ejecutar acciones para calcular el promedio, la mediana, el número de columnas, número de filas, tipos de variables y datos que contiene nuestra base. De esta manera, estaremos informados y listos para ejecutar las acciones necesarias en el análisis futuro de manera eficiente.

Desarrollo

Llamanos a nuestra base de datos con la función data(flights),

Para comenzar nuestro análisis y obtener una descripción general, usamos la función: str(flights) Objetos: 336,776 Variables: 19

Al ejecutar la función srt(), además de conocer el total de objetos y variables, podemos saber el tipo de variables con las que estaremos trabajando, en esta base contamos con tres tipos de variables,

num - numeric: son datos numéricos reales con decimales, puedes hacer todo tipo de cálculos.

  • int - integer: son datos numéricos reales enteros.
  • chr - character: cualquier dato alfanumérico.
    Las variables dictan los comandos y funciones que podremos aplicar en un futuro.

Para conocer aún mejor el tipo o los tipos de datos que deseamos manipular, ejecutamos la función: class(flights)

[1] “tbl_df” “tbl” “data.frame”

Un tipo de lista donde cada elemento tiene el mismo tamaño de vector Un atributo de nombres es un vector de caracteres de la misma longitud que la lista subyacente.

Este atributo solo se consulta para saber el número de filas y cualquier nombre de fila que pueda almacenarse.

Una vez que sabemos el tipo de dato, nos interesa conocer la dimensión de la base de datos, es decir que tan extensa es, si existen más columnas que filas o al revés. Para conocer estos datos, ejecutamos las siguientes tres funciones,

  • Función: ncol(flights) 19 columnas

  • Función: nrow(flights) 336776 filas

  • Función: dim(flights) 336776 19

La dimensión nos arroja los mismos números que las primeras dos funciones, pero podemos notar que no nos clasifica o especifica cuales son las filas y las columnas. Por ello es indispensable que no olvidemos que las filas siempre van antes que las columnas, es así cómo podemos detectar que las filas a comparación de las columnas son muchísimas más.

  • Función: head(flights) 6 primeras filas Esta función muestra las primeras filas de un data frame, muestra las primeras 6 filas. Es útil para obtener una vista rápida de los datos en la parte superior del data frame.

  • Función: tail(flights) 6 últimas filas Esta función muestra las últimas filas de un data frame, muestra las últimas 6 filas. Es útil para obtener una vista rápida de los datos en la parte inferior del data frame.

  • Función rbind(head(flights, 50), tail(flights, 20)) 50 primeras filas y 20 últimas filas 70 filas en total combinadas

Esta línea de código combina los resultados de head(flights, 50) y tail(flights, 20) utilizando la función rbind(). rbind() se utiliza para unir (concatenar) dos o más data frames verticalmente, es decir, uno debajo del otro. En este caso, se están uniendo las primeras 50 filas y las últimas 20 filas del data frame flights.

  • Función: summary(flights)
  • Información estadística de las variables numéricas

Esta función proporciona un resumen estadístico de las variables en el data frame flights. Para variables numéricas, muestra estadísticas como la media, mediana, mínimo, máximo y cuartiles. Para variables categóricas, muestra la cantidad de valores únicos y los valores más frecuentes. Es una manera rápida de obtener una visión general de las características y distribuciones de los datos en el data frame.

Conclusión

La actividad de exploración de datos realizada involucró la utilización de diversas funciones en el lenguaje de programación R para comprender y analizar un conjunto de datos de vuelos. Se comenzó por cargar la base de datos y se empleó la función str() para obtener información sobre la estructura y tipos de variables presentes en el conjunto de datos. Se identificaron tres tipos principales de variables: numéricas, enteras y alfanuméricas.

Posteriormente, se emplearon funciones como class(), ncol(), nrow() y dim() para obtener detalles sobre las dimensiones y el tamaño de la base de datos. Se observó que la base de datos contiene 336,776 filas y 19 columnas, lo que sugiere una mayor cantidad de observaciones en comparación con las variables disponibles.

La función head() se utilizó para mostrar las primeras filas del conjunto de datos, mientras que tail() mostró las últimas filas. Combinando los resultados de head() y tail() mediante la función rbind(), se obtuvo una vista de 70 filas en total, que permitió examinar una porción inicial y final de los datos.

Para obtener un resumen estadístico de las variables numéricas presentes en el conjunto de datos, se utilizó la función summary(). Esta función proporcionó información relevante como la media, mediana, mínimo, máximo y cuartiles para las variables numéricas, así como la cantidad de valores únicos y los valores más frecuentes para las variables categóricas.

En conjunto, estas acciones de exploración de datos permitieron obtener una comprensión inicial de la estructura, dimensiones y características estadísticas de los datos de vuelos, sentando las bases para análisis más profundos y la toma de decisiones informadas en futuros pasos de análisis.

Anexo con resultados

1. Carga en memoria el data frame flights y muestra su contenido.

library(nycflights13)
data("flights")
flights

2. Carga en memoria el data frame flights y muestra su contenido. 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" ...
  • num - numeric: son datos numéricos reales con * decimales, puedes hacer todo tipo de cálculos.
  • int - integer: son datos numéricos reales enteros.
  • chr - character: cualquier dato alfanumérico.

3. ¿Cuál es la clase de flights? y ¿Qué significa?

class(flights)
## [1] "tbl_df"     "tbl"        "data.frame"
  • Un tipo de lista donde cada elemento tiene el mismo tamaño de vector
  • Un atributo de nombres es un vector de caracteres de la misma longitud que la lista subyacente.
  • Este atributo solo se consulta para saber el número de filas y cualquier nombre de fila que pueda almacenarse.

4. ¿Cuántas variables (columnas) tiene?

ncol(flights)
## [1] 19

5. ¿Cuántas observaciones (registros) tiene la base de datos?

nrow(flights)
## [1] 336776

6. ¿Cuál es la dimensión de flights?

dim(flights) 
## [1] 336776     19

7. Consulta el data frame flights

View(flights)

8. Genera un output del data frame flights. Utiliza las funciones head y tail, ¿Cuántos renglones muestran por defecto cada función?

h<-head(flights)
print(h)
## # 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>
t<-tail(flights)
print(t)
## # 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>

9. Ahora muestra los primeros 50 registros y los últimos 20.

combined_data <- rbind(head(flights, 50), tail(flights, 20))
print(combined_data)
## # A tibble: 70 × 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
## # ℹ 60 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>

10. Encuentra los resultados descriptivos de las variables del data frame 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  
## 

summary(flights): Se observa en cada variable el valor máximo y mínimo, la mediana, el promedio y el primer y tercer cuartil; en algunos casos que no son variables numéricas se muestra la longitud, la clase y la moda como carácter esto quiere decir que son palabras que se repiten cierta cantidad de veces.