UNIVERSIDAD CENTRAL DEL ECUADOR

Facultad de Ciencias Económicas

Carrera de Estadística

Autores: Fernanda Chipantaxi, Ayleen Rubio, Marlon Llugsha, Cristhian Diaz

Fecha: 30-07-2022

Colaborador: Ing. Francisco Valverde, PHD en informática

EJERCICIOS SOBRE DATA FRAMES EN R

Resolver los siguientes ejercicios:

EJERCICIO 1

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

Paso 1: Primero desempaquetamos dplyr para utilizar la base de datos interna mtcars.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Paso 2: Llamamos al dataset mtcars que contendrá los tipos de autos con su respectiva de información.

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

Paso 3: Asignamos a la variable mtcars1, la función select para seleccionar de nuestra base de datos mtcars, desde la primera columna hasta la tercera columna y ejecutamos.

mtcars1 <- select(mtcars, 1:3)
mtcars1
##                      mpg cyl  disp
## Mazda RX4           21.0   6 160.0
## Mazda RX4 Wag       21.0   6 160.0
## Datsun 710          22.8   4 108.0
## Hornet 4 Drive      21.4   6 258.0
## Hornet Sportabout   18.7   8 360.0
## Valiant             18.1   6 225.0
## Duster 360          14.3   8 360.0
## Merc 240D           24.4   4 146.7
## Merc 230            22.8   4 140.8
## Merc 280            19.2   6 167.6
## Merc 280C           17.8   6 167.6
## Merc 450SE          16.4   8 275.8
## Merc 450SL          17.3   8 275.8
## Merc 450SLC         15.2   8 275.8
## Cadillac Fleetwood  10.4   8 472.0
## Lincoln Continental 10.4   8 460.0
## Chrysler Imperial   14.7   8 440.0
## Fiat 128            32.4   4  78.7
## Honda Civic         30.4   4  75.7
## Toyota Corolla      33.9   4  71.1
## Toyota Corona       21.5   4 120.1
## Dodge Challenger    15.5   8 318.0
## AMC Javelin         15.2   8 304.0
## Camaro Z28          13.3   8 350.0
## Pontiac Firebird    19.2   8 400.0
## Fiat X1-9           27.3   4  79.0
## Porsche 914-2       26.0   4 120.3
## Lotus Europa        30.4   4  95.1
## Ford Pantera L      15.8   8 351.0
## Ferrari Dino        19.7   6 145.0
## Maserati Bora       15.0   8 301.0
## Volvo 142E          21.4   4 121.0

EJERCICIO 2

Utiliza la ayuda ?select_helpers para que observes el resultado.

Paso 1: Escribimos la función ?select_helpers para observar la ayuda que brinda rstudio para la función select.

?select_helpers
## starting httpd help server ... done

EJERCICIO 3

Seleccionar las columnas que empiezan por d.

Paso 1: Utilizamos la función head para que nos visualice las seis primeras filas, con ayuda de select, seleccionamos la base de datos mtcars y con la función starts_whit, escogemos las columnas que empiecen con la letra “d”.

head(select(mtcars, starts_with("d")))
##                   disp drat
## Mazda RX4          160 3.90
## Mazda RX4 Wag      160 3.90
## Datsun 710         108 3.85
## Hornet 4 Drive     258 3.08
## Hornet Sportabout  360 3.15
## Valiant            225 2.76

EJERCICIO 4

Seleccionar las columnas que terminan por p. 

Paso 1: Utilizamos la función head para que nos visualice las seis primeras filas, con ayuda de select, seleccionamos la base de datos mtcars y con la función ends_with, escogemos las columnas que terminen con la letra “p”.

head(select(mtcars, ends_with("p")))
##                   disp  hp
## Mazda RX4          160 110
## Mazda RX4 Wag      160 110
## Datsun 710         108  93
## Hornet 4 Drive     258 110
## Hornet Sportabout  360 175
## Valiant            225 105

EJERCICIO 5

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

Paso 1: Copiamos el código del enunciado y al ejecutar se seleccionarán las columnas “drat” y “am”, que no aparecerán en la tabla.

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

EJERCICIO 6

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

Paso 1: Copiamos el código del enunciado y al ejecutar se seleccionarán las columnas que contengan al menos una letra “a” en su nombre.

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

EJERCICIO 7

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

Paso 1: Copiamos el código del enunciado y al ejecutar de la base mtcars se seleccionará la columna de nombres “mpg” con los valores correspondiente a mayores de 20, pero también que la columna de nombre “gear” cumpla la condición de que sea igual a 4.

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

EJERCICIO 8

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

Paso 1: Utilizamos la función head para que nos visualice las seis primeras filas, con ayuda de filter, filtramos los registros de la base de datos mtcars, seleccionamos los sujetos con tipo de transmisión igual a uno asignando am==1 y que tenga seis cilindros o menos, asignando cyl ≤ a 6.

head(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

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).

Paso 1: Utilizamos la función filter, para filtrar los registros de la base de datos mtcars, seleccionamos los sujetos que consumen menos de 21 mpg o bien tienen menos de 3 carburantes asignando mpg < 21 | carb < 3, y que tenga menos de 4 engranajes, asignando gear < 4.

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).

Paso 1: Utilizamos la función select, para seleccionar de la base de datos mtcars, las columnas del cilindraje y del desplazamiento, y con el comando everything ordenamos los datos de las columnas selecionadas.

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

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.

Paso 1: Asignamos a la variable wt, la base de datos mtcars donde crearemos una nueva columnas, selecionando la septima columna correspondiente al peso de los coches y ejecutamos.

wt<-mtcars[,7]
wt
##  [1] 16.46 17.02 18.61 19.44 17.02 20.22 15.84 20.00 22.90 18.30 18.90 17.40
## [13] 17.60 18.00 17.98 17.82 17.42 19.47 18.52 19.90 20.01 16.87 17.30 15.41
## [25] 17.05 18.90 16.70 16.90 14.50 15.50 14.60 18.60

Paso 2: Asignamos a la variable wt_kg, la variable wt que creamos en el paso anterior y multiplicamos esta variable por 0.45 kg, y ejecutamos.

wt_Kg<-wt*0.45
wt_Kg
##  [1]  7.4070  7.6590  8.3745  8.7480  7.6590  9.0990  7.1280  9.0000 10.3050
## [10]  8.2350  8.5050  7.8300  7.9200  8.1000  8.0910  8.0190  7.8390  8.7615
## [19]  8.3340  8.9550  9.0045  7.5915  7.7850  6.9345  7.6725  8.5050  7.5150
## [28]  7.6050  6.5250  6.9750  6.5700  8.3700

Paso 3: Asignamos a la variable mtcars_mod, la función cbind para combinar la variable wt_kg que creamos en el paso anterior a la base de datos mtcars, y ejecutamos.

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

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: Le guardeen otra varaible para no dalar la base original

Paso 1: Asignamos a la variable mtcars_mod1, la función summarise para agrupar los valores de la media de disp en una tabla, seleccionamos la base de datos mtcars y con la función mean sacamos la media de la columna de disp, y ejecutamos.

mtcars_mod1<-summarise(mtcars_mod,mean(disp))
mtcars_mod1
##   mean(disp)
## 1   230.7219

EJERCICIO 13

summarise(group_by(mtcars, cyl), max = max(disp)). Explica que resultados obtienes.

Paso 1: Copiamos el código del enunciado y al ejecutar, nos muestra una agrupación de los datos desde el mayor número de desplazamiento según el numero de cilindrage.

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

EJERCICIO 14

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

Paso 1: Copiamos el código del enunciado y al ejecutar, se selecciona la columna de nombre mpg hasta la columa disp usando pipes.

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

EJERCICIO 15

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

Paso 1: Copiamos el código del enunciado y al ejecutar, se seleccionan las columnas de la base de datos mtcars que tengan la letra “a” con la excepción de aparezcan las columnas “drat”, y “am”.

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

EJERCICIO 16

Utilizando pipes ejecuta el ejercicio 15.

Paso 1: Copiamos el código del enunciado del ejercicio 15 agregando pipes y head al final, y ejecutamos.

mtcars %>% select(contains("a"), -drat, -am)%>%  head
##                   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.

Paso 1: Copiamos el código del enunciado y al ejecutar, se realizá una agrupación de los cilindrages en donde de cada una se saca la media y la desviación estándar.

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

EJERCICIO 18

Utilizando pipes ejecuta el ejercicio 17.

Paso 1: Copiamos el código del enunciado del ejercicio 17 agregando pipes y head al final, y ejecutamos.

mtcars %>% filter(, wt > 1.5)%>% 
  group_by( cyl) %>%
  summarise(mn = mean(mpg), sd = sd(mpg)) %>%  head
## # 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

EJERCICIO 19

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

Paso 1: Desempaquetamos dplyr con ayuda de la función library.

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.

Paso 1: Asignamos a la variable web1, el url donde se encuentra ubicado del fichero vuelos.csv.

web1 <- "https://gauss.inf.um.es/datos/vuelos.csv"

EJERCICIO 21

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

Paso 1: Utilizamos la función dowload.file para descargar el archivos vuelos.csv en nuestra máquina.

download.file(web1, "vuelos.csv")

Paso 2: Asignamos a la variable vuelo, la función read.table para leer nuestro archivo asignando header = T y separado por comillas, y ejecutamos usando head para que muestre los seis primeras filas.

vuelos <- read.table(web1,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?

Paso 1: Asignamos a la variable destino, la función filter para filtrar los registros de la base de datos vuelo, seleccionamos los vuelos con destino a “SFO” u “OAK” de la siguiente forma dest==“SFO” | dest==“OAK”, y ejecutamos usando head para que muestre los seis primeras filas.

destino <- filter(vuelos, dest=="SFO" | dest=="OAK")
head(destino)
##           date hour minute  dep  arr dep_delay arr_delay carrier flight dest
## 373 2011-01-31    8     51  851 1052         1       -27      CO    170  SFO
## 389 2011-01-31   11     29 1129 1351         4         1      CO    270  SFO
## 402 2011-01-31   14     32 1432 1656         7         5      CO    370  SFO
## 436 2011-01-31   17     48 1748 2001         3        -4      CO    570  SFO
## 467 2011-01-31   21     43 2143 2338        50        24      CO    770  SFO
## 468 2011-01-31    7     29  729 1002        -1         2      CO    771  SFO
##      plane cancelled time dist
## 373 N35407         0  225 1635
## 389 N37420         0  228 1635
## 402 N27213         0  229 1635
## 436 N75436         0  236 1635
## 467 N37281         0  224 1635
## 468 N26226         0  237 1635

Paso 2: Luego asignamos la función nrow a la variable destino para contar los vuelos que se quedaron.

nrow(destino) 
## [1] 1121

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?.

Paso 1: Con ayuda de pipes, seleccionamos los vuelos que se han retrasado(arr_delay) y el destino(dest), después agregamos con la función filter, para filtrar los registros de los vuelos que se retrasaron mas de una hora.

vuelos  %>%
  select(arr_delay,dest) %>%
  filter(arr_delay>60 ) %>% head
##     arr_delay dest
## 17         84  DFW
## 20         72  DFW
## 74         69  DFW
## 97        126  DFW
## 99         70  DFW
## 129        80  MIA

EJERCICIO 24

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

Paso 1: Asignamos a la variable restrasos, la función select para seleccionar las columnas “dep_delay” y “arr_delay” pertenecientes a los vuelos con retrasos de nuestra base de datos vuelos.

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

Paso 2: Asignamos a la variable restrasos1, la función select para seleccionar las columnas seis y siete pertenecientes a los vuelos con retrasos de nuestra base de datos vuelos.

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

Paso 3: Asignamos a la variable restrasos, la función select para seleccionar la base de datos vuelos y con la función end_with, seleccionaremos las columnas que terminen con la letra “y”, pertenecientes a los vuelos con retrasos.

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

Paso 4: Asignamos a la variable restrasos, la función select y el signo (-) para seleccionar las columnas que no queremos que aparezcan en la tabla a excepción de las columnas pertenecientes a los vuelos con retraso .

retrasos4 <- select(vuelos, -date, -hour, -minute, -dep, -arr, -carrier, -flight, -dest, -plane, -cancelled, -time, -dist)
head(retrasos4)
##   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.

Paso 1: Con ayuda de pipes y la función filter, filtramos los registros de los vuelos que se retrasaron mas de una hora, luego agregamos la función group_by para agrupar la fecha y por último, con la función summarise sacamos la media, mediana y cuartil 75 de los restrasos en los vuelos por hora.

vuelos %>% filter(arr_delay > 60)%>% 
  group_by(date) %>%
  summarise(mn = mean(arr_delay), md = median(arr_delay), qu75=quantile(arr_delay)) %>%  head
## `summarise()` has grouped output by 'date'. You can override using the
## `.groups` argument.
## # A tibble: 6 × 4
## # Groups:   date [2]
##   date          mn    md  qu75
##   <chr>      <dbl> <dbl> <dbl>
## 1 2011-01-01  83.5    71    61
## 2 2011-01-01  83.5    71    64
## 3 2011-01-01  83.5    71    71
## 4 2011-01-01  83.5    71   107
## 5 2011-01-01  83.5    71   137
## 6 2011-01-02 114.    101    62

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.

Paso 1: Con ayuda de pipes y la función select, seleccionamos las columnas “arr_delay”, “hour”, “flight”, luego con la función filter, filtramos los registros de los casos mayores a diez, usamos la función group_by, para agrupar los vuelos por dia, y por último, con la ayuda de la función summarise, sacamos la media de retraso en los vuelos por día y hora, y tambien sacamos la cantidad de vuelos por día y hora.

vuelos %>% select(arr_delay,date,hour,flight)%>% 
  filter(flight > 10) %>% 
  group_by(date) %>%
  summarise(mn = mean(arr_delay, na.rm=T), 
            cantidad = n_distinct(flight)) %>% head 
## # A tibble: 6 × 3
##   date          mn cantidad
##   <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).

Paso 1: Descargamos el paquete RODBC.

install.packages("RODBC")

Paso 2: Asignamos a la variable conexion, la función odbcConnect para ingresar la Data base.

conexion<- odbcConnect("DATABASE_Taller9", uid= "root", pwd= "Wd1998@10")

Paso 3: Asignamos a la variable vuelos, la función sqlQuery para establecer una conexion con MySQl y seleccionamos donde se encuentra el archivos vuelos.

vuelos<- sqlQuery(conexion, "SELECT * FROM taller.vuelos1")

Paso 4: Con la función View, asignamos la variables vuelos para que nos muestre la base de datos importada.

View(vuelos)