UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE CIENCIAS ECONOMICAS
INGENIERIA ESTADISTICA
Sello UCE
Sello UCE

Utilizando la base de datos interna mtcars, resolver los siguientes enunciados:

Ejercicio 1:

Seleccionamos las 3 primeras columnas del dataset mtcars y mostramos la cabecera

Mostramos la base mtcars:

mtcars
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Instalamos y cargamos la libreria “tidyverse”:

#install.packages("tidyverse")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── 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

Utilizamos la funcion head para mostrar la cabecera:

head(select(mtcars, 1:3))
##                    mpg cyl disp
## Mazda RX4         21.0   6  160
## Mazda RX4 Wag     21.0   6  160
## Datsun 710        22.8   4  108
## Hornet 4 Drive    21.4   6  258
## Hornet Sportabout 18.7   8  360
## Valiant           18.1   6  225

Ejercicio 2:

Utiliza la ayuda ?select_helpers para que observes el resultado:

?select_helpers
## starting httpd help server ... done
Pagina web del select
Pagina web del select

Ejercicio 3:

Seleccionar las columnas que empiezan por d:

select(mtcars,starts_with("d"))
##                      disp drat
## Mazda RX4           160.0 3.90
## Mazda RX4 Wag       160.0 3.90
## Datsun 710          108.0 3.85
## Hornet 4 Drive      258.0 3.08
## Hornet Sportabout   360.0 3.15
## Valiant             225.0 2.76
## Duster 360          360.0 3.21
## Merc 240D           146.7 3.69
## Merc 230            140.8 3.92
## Merc 280            167.6 3.92
## Merc 280C           167.6 3.92
## Merc 450SE          275.8 3.07
## Merc 450SL          275.8 3.07
## Merc 450SLC         275.8 3.07
## Cadillac Fleetwood  472.0 2.93
## Lincoln Continental 460.0 3.00
## Chrysler Imperial   440.0 3.23
## Fiat 128             78.7 4.08
## Honda Civic          75.7 4.93
## Toyota Corolla       71.1 4.22
## Toyota Corona       120.1 3.70
## Dodge Challenger    318.0 2.76
## AMC Javelin         304.0 3.15
## Camaro Z28          350.0 3.73
## Pontiac Firebird    400.0 3.08
## Fiat X1-9            79.0 4.08
## Porsche 914-2       120.3 4.43
## Lotus Europa         95.1 3.77
## Ford Pantera L      351.0 4.22
## Ferrari Dino        145.0 3.62
## Maserati Bora       301.0 3.54
## Volvo 142E          121.0 4.11

Ejercicio 4:

Seleccionar las columnas que terminan por p:

select(mtcars,ends_with("p"))
##                      disp  hp
## Mazda RX4           160.0 110
## Mazda RX4 Wag       160.0 110
## Datsun 710          108.0  93
## Hornet 4 Drive      258.0 110
## Hornet Sportabout   360.0 175
## Valiant             225.0 105
## Duster 360          360.0 245
## Merc 240D           146.7  62
## Merc 230            140.8  95
## Merc 280            167.6 123
## Merc 280C           167.6 123
## Merc 450SE          275.8 180
## Merc 450SL          275.8 180
## Merc 450SLC         275.8 180
## Cadillac Fleetwood  472.0 205
## Lincoln Continental 460.0 215
## Chrysler Imperial   440.0 230
## Fiat 128             78.7  66
## Honda Civic          75.7  52
## Toyota Corolla       71.1  65
## Toyota Corona       120.1  97
## Dodge Challenger    318.0 150
## AMC Javelin         304.0 150
## Camaro Z28          350.0 245
## Pontiac Firebird    400.0 175
## Fiat X1-9            79.0  66
## Porsche 914-2       120.3  91
## Lotus Europa         95.1 113
## Ford Pantera L      351.0 264
## Ferrari Dino        145.0 175
## Maserati Bora       301.0 335
## Volvo 142E          121.0 109

Ejercicio 5:

head(select( mtcars, -drat, -am )) (Explica que resultado obtienes ?):

head(select( mtcars, -drat, -am ))
##                    mpg cyl disp  hp    wt  qsec vs gear carb
## Mazda RX4         21.0   6  160 110 2.620 16.46  0    4    4
## Mazda RX4 Wag     21.0   6  160 110 2.875 17.02  0    4    4
## Datsun 710        22.8   4  108  93 2.320 18.61  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.215 19.44  1    3    1
## Hornet Sportabout 18.7   8  360 175 3.440 17.02  0    3    2
## Valiant           18.1   6  225 105 3.460 20.22  1    3    1

Resultado:

Elige la cabecera y todas las columnas de mtcars, excepto “drat” y “am” por el signo “-” que existe al inicio de cada variable.


Ejercicio 6:

head(select( mtcars, contains( “a” ) )) (Explica que resultado obtienes ?):

head(select( mtcars, contains("a")))
##                   drat am gear carb
## Mazda RX4         3.90  1    4    4
## Mazda RX4 Wag     3.90  1    4    4
## Datsun 710        3.85  1    4    1
## Hornet 4 Drive    3.08  0    3    1
## Hornet Sportabout 3.15  0    3    2
## Valiant           2.76  0    3    1

Resultado:

Elige la cabecera y todas las columnas de mtcars, de las variables que contengan la letra “a”.


Ejercicio 7:

head(filter( mtcars, mpg > 20, gear == 4)) (Explica que resultado obtienes ?):

head(filter( mtcars, mpg > 20, gear == 4))
##                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710    22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Merc 240D     24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230      22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Fiat 128      32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1

Resultado:

Elige la cabecera y filtra las variables “mpg” mayores a 20 y compara con la variable “gear” que sea igual a 4.


Ejercicio 8:

Seleccionar los sujetos con tipo de transmisión (am) 1 que, además, tienen 6 cilindros o menos:

filter(mtcars, am == 1 & cyl <= 6)
##                 mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710     22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Fiat 128       32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Fiat X1-9      27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Ejercicio 9:

Seleccionar los sujetos que bien consumen menos de 21 mpg o bien tienen menos de 3 carburantes (carb) y menos de 4 engranajes (gear):

filter(mtcars, mpg < 21 | carb < 3 & gear < 4)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

Ejercicio 10:

Ordena por cilindrada (cyl) y por desplazamiento (disp)):

arrange(mtcars, cyl, disp)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4

Ejercicio 11:

Crea una nueva columna que indique los kilogramos que pesa el coche, sabiendo que 1 libra = 0.45 kg. La variable wt indica el peso en libras:

xd<-mutate(mtcars, kilogramos= wt*0.45)%>%head

Dejamos el resultado con 2 decimales:


xd<-round(xd,2)
xd
##                    mpg cyl disp  hp drat   wt  qsec vs am gear carb kilogramos
## Mazda RX4         21.0   6  160 110 3.90 2.62 16.46  0  1    4    4       1.18
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.88 17.02  0  1    4    4       1.29
## Datsun 710        22.8   4  108  93 3.85 2.32 18.61  1  1    4    1       1.04
## Hornet 4 Drive    21.4   6  258 110 3.08 3.21 19.44  1  0    3    1       1.45
## Hornet Sportabout 18.7   8  360 175 3.15 3.44 17.02  0  0    3    2       1.55
## Valiant           18.1   6  225 105 2.76 3.46 20.22  1  0    3    1       1.56

Ejercicio 12:

La función summarise() agrupa los valores en una tabla de acuerdo a la función que indiquemos. Calcula la media de disp usando la función summarise:

summarise(mtcars,mean(disp))
##   mean(disp)
## 1   230.7219

Ejercicio 13:

summarise(group_by(mtcars, cyl), max = max(disp)) (Explica que resultado obtienes ?):

summarise(group_by(mtcars, cyl), max = max(disp))
## # A tibble: 3 × 2
##     cyl   max
##   <dbl> <dbl>
## 1     4  147.
## 2     6  258 
## 3     8  472

Resultado:

Agrupa por “cyl” (cilindraje) de mtcars y busca el maximo valor “max” de acuerdo al valor del “cyl” (cilindraje) y ordena de menor a mayor.


Ejercicio 14:

mtcars %>% select( mpg:disp )%>% head (Explica que resultado obtienes ?):

mtcars %>% select( mpg:disp )%>%  head
##                    mpg cyl disp
## Mazda RX4         21.0   6  160
## Mazda RX4 Wag     21.0   6  160
## Datsun 710        22.8   4  108
## Hornet 4 Drive    21.4   6  258
## Hornet Sportabout 18.7   8  360
## Valiant           18.1   6  225

Resultado:

Selecciona las variables desde “mpg” hasta “disp” de la base mtcars y agrupamos la cabecera con la funcion “head”.


Ejercicio 15:

head(select(select(mtcars, contains(“a”)), -drat, -am)) (Explica que resultado obtienes ?):

head(select(select(mtcars, contains("a")), -drat, -am))
##                   gear carb
## Mazda RX4            4    4
## Mazda RX4 Wag        4    4
## Datsun 710           4    1
## Hornet 4 Drive       3    1
## Hornet Sportabout    3    2
## Valiant              3    1

Resultado:

Selecciona las comlumnas de mtcars que contengan la letra “a” en su nombre y excluye “draft” y “am” y selecciona con “head” las primeras filas de esta base.


Ejercicio 16:

Utilizando pipes ejecuta el ejercicio 15:

head(mtcars %>% select((contains("a")), -drat, -am))
##                   gear carb
## Mazda RX4            4    4
## Mazda RX4 Wag        4    4
## Datsun 710           4    1
## Hornet 4 Drive       3    1
## Hornet Sportabout    3    2
## Valiant              3    1

Ejercicio 17:

mtcars_filtered = filter(mtcars, wt > 1.5)
mtcars_grouped = group_by(mtcars_filtered, cyl)
summarise(mtcars_grouped, mn = mean(mpg), sd = sd(mpg)) (Explica que resultado obtienes ?):

mtcars_filtered = filter(mtcars, wt > 1.5)
mtcars_grouped = group_by(mtcars_filtered, cyl)
summarise(mtcars_grouped, mn = mean(mpg), sd = sd(mpg))
## # A tibble: 3 × 3
##     cyl    mn    sd
##   <dbl> <dbl> <dbl>
## 1     4  26.7  4.51
## 2     6  19.7  1.45
## 3     8  15.1  2.56

Resultado:

Filtra el dataframe mtcars para mantener solo las filas donde el peso “wt” es mayor a 1.5. Luego, agrupa los datos filtrados por el número de cilindros “cyl” y calcula la media y la desviación estándar del consumo de combustible “mpg” dentro de cada grupo.


Ejercicio 18:

Utilizando pipes ejecuta el ejercicio 17:

mtcars %>% 
  filter(wt > 1.5) %>% 
  group_by(cyl) %>% 
  summarise(mean(mpg), sd(mpg))
## # A tibble: 3 × 3
##     cyl `mean(mpg)` `sd(mpg)`
##   <dbl>       <dbl>     <dbl>
## 1     4        26.7      4.51
## 2     6        19.7      1.45
## 3     8        15.1      2.56

Ejercicio 19:

Es obligatorio utilizar las funciones del paquete “dplyr” y recomendable utilizar pipes “%>%” para los siguientes ejercicios:

#install.packages("dyplyr")
library(dplyr)

Ejercicio 20:

Descarga el fichero de datos “vuelos.csv” situado en http://gauss.inf.um.es/datos/; en local o localiza la url donde se encuentra:

url<-"http://gauss.inf.um.es/datos/vuelos.csv"

Ejercicio 21:

Descarga el archivo y Guarda los datos en una variable llamada “vuelos”:

vuelos <- read.csv("vuelos.csv", header = T, sep = ",")
head(vuelos)
##         date hour minute  dep  arr dep_delay arr_delay carrier flight dest
## 1 2011-01-01   14      0 1400 1500         0       -10      AA    428  DFW
## 2 2011-01-02   14      1 1401 1501         1        -9      AA    428  DFW
## 3 2011-01-03   13     52 1352 1502        -8        -8      AA    428  DFW
## 4 2011-01-04   14      3 1403 1513         3         3      AA    428  DFW
## 5 2011-01-05   14      5 1405 1507         5        -3      AA    428  DFW
## 6 2011-01-06   13     59 1359 1503        -1        -7      AA    428  DFW
##    plane cancelled time dist
## 1 N576AA         0   40  224
## 2 N557AA         0   45  224
## 3 N541AA         0   48  224
## 4 N403AA         0   39  224
## 5 N492AA         0   44  224
## 6 N262AA         0   45  224

Ejercicio 22:

Selecciona los vuelos con destino SFO u OAK utilizando las funciones del paquete dplyr. ¿Con cuantos vuelos nos quedamos?:

d_vuelos <- vuelos %>% 
  select(dest) %>%
  filter(dest == "SFO" | dest == "OAK") %>%
  count()

head(d_vuelos)
##      n
## 1 1121

Resultado:

Nos quedamos con un total de 1121 vuelos con destino a SFO o OAK.


Ejercicio 23:

Selecciona los vuelos que se han retrasado más de una hora. ¿Cuál es el destino que más se retrasa en proporción al número de vuelos?:

x <- select(vuelos, dest, arr_delay)
x <- filter(x, arr_delay >= 60)
x <- xtabs(x$arr_delay ~ x$dest + x$arr_delay)
head(x, 20)
## x$dest
##   ABQ   AEX   AMA   ASE   ATL   AUS   AVL   BFL   BHM   BNA   BOS   BRO   BTR 
##  4025  1274  1769   429 23255  6749   491   240  3963  5577  1438  1953  1794 
##   BWI   CAE   CHS   CLE   CLT   CMH   COS 
##  3197   913  1726  1823  6081  1802  2209
atrasos <- data.frame(x)
head(atrasos)
##   x.dest  Freq
## 1    ABQ  4025
## 2    AEX  1274
## 3    AMA  1769
## 4    ASE   429
## 5    ATL 23255
## 6    AUS  6749
atrasosord <- arrange(atrasos, Freq)
head(atrasosord, 20)
##    x.dest Freq
## 1     GRK  108
## 2     RNO  197
## 3     CRW  205
## 4     BFL  240
## 5     GUC  282
## 6     HDN  310
## 7     MLU  318
## 8     ASE  429
## 9     LCH  456
## 10    AVL  491
## 11    ORF  650
## 12    SJU  680
## 13    MFE  717
## 14    GSO  762
## 15    DAY  803
## 16    SNA  871
## 17    SJC  893
## 18    CAE  913
## 19    PBI  944
## 20    DCA 1011
max(atrasosord$Freq)
## [1] 23255
min(atrasosord$Freq)
## [1] 108

Resultado:

El destino con mayores retrasos en proporcion a los vuelos es Atlanta con un total de 23255 minutos de retraso.


Ejercicio 24:

Encuentra 4 maneras diferentes de utilizar la función select para seleccionar las variables relacionadas con los retrasos (delay):

Forma 1:

head(select(vuelos, contains("delay")))
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7

Forma 2:

head(select(vuelos, ends_with("delay")))
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7

Forma 3:

head(select(vuelos, matches(".y")))
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7

Forma 4:

head(select(vuelos, dep_delay, arr_delay)) 
##   dep_delay arr_delay
## 1         0       -10
## 2         1        -9
## 3        -8        -8
## 4         3         3
## 5         5        -3
## 6        -1        -7

Ejercicio 25:

Agrupa los vuelos por fecha y calcula: media, mediana y cuartil 75 de los retrasos en los vuelos por hora:

f_vuelos<- vuelos %>% 
  select(date, hour, arr_delay) %>%
  group_by(date) %>% 
  summarise(media = mean(arr_delay, na.rm = T), mediana = median(arr_delay, na.rm = T), cuatil_75 = quantile(arr_delay, 0.75, na.rm = T))

head(f_vuelos)
## # A tibble: 6 × 4
##   date       media mediana cuatil_75
##   <chr>      <dbl>   <dbl>     <dbl>
## 1 2011-01-01 10.1        5      17  
## 2 2011-01-02 10.5        3      17  
## 3 2011-01-03  6.04      -2      10.5
## 4 2011-01-04  7.97       4      16  
## 5 2011-01-05  4.17      -1      11  
## 6 2011-01-06  6.07       2      13

Ejercicio 26:

Utilizando pipes calcula la media de retraso en los vuelos por día y hora, la cantidad de vuelos por día y hora y luego muestra solo los casos para los cuales haya más de 10:

r_vuelos <- vuelos %>%
  select(date, hour, arr_delay, flight) %>%
  filter(flight > 10) %>%
  group_by(date) %>%
  summarise(media_retraso = mean(arr_delay, na.rm = T),
            cantidad_vuelos = n_distinct(flight))

head(r_vuelos)
## # A tibble: 6 × 3
##   date       media_retraso cantidad_vuelos
##   <chr>              <dbl>           <int>
## 1 2011-01-01          9.97             531
## 2 2011-01-02         10.5              649
## 3 2011-01-03          6.18             668
## 4 2011-01-04          8.07             554
## 5 2011-01-05          4.23             561
## 6 2011-01-06          6.17             629

Ejercicio 27:

Importar la base de datos realizada en MYSQL a R (Consultarlo como hacerlo):

Instalamos y cargamos la libreria “RODBC” para abrir nuestra base en mySQL:


#install.packages("RODBC")
library(RODBC)

Realizamos la conexión de nuestra base mysql:

sql_vuelos <- odbcConnect("MySQLConeccion1", uid = "root", pwd = "root")
vuelos1 <- sqlQuery(sql_vuelos, "SELECT * FROM vuelos1.vuelosxd")

Mostramos los primeros registros:

head(vuelos1)
##   id     date hour minute  dep  arr dep_delay arr_delay carrier flight dest
## 1  1 1/1/2011   14      0 1400 1500         0       -10      AA    428  DFW
## 2  2 2/1/2011   14      1 1401 1501         1        -9      AA    428  DFW
## 3  3 3/1/2011   13     52 1352 1502        -8        -8      AA    428  DFW
## 4  4 4/1/2011   13     59 1359 1503        -1        -7      AA    428  DFW
## 5  5 5/1/2011   13     59 1359 1509        -1        -1      AA    428  DFW
## 6  6 6/1/2011   13     55 1355 1454        -5       -16      AA    428  DFW
##    plane cancelled time dist
## 1 N576AA         0   40  224
## 2 N557AA         0   45  224
## 3 N541AA         0   48  224
## 4 N262AA         0   45  224
## 5 N493AA         0   43  224
## 6 N477AA         0   40  224