Instalando las librerías

library(dplyr)
library(tidyverse)

Funciones

Dentro de la librería aprenderemos a utilizar distintas funciones. Entre las más importantes se encuentran: * filter() —> Filtrar

Datos (mtcars)

data("mtcars") # Datos que se utilizarán
head(mtcars) # Observar los datos
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Función filter()

La función filter nos permite seleccionar las filas que cumplan con las condiciones que indicamos a la función.

 filter(mtcars, hp == 110, gear == 4)
##               mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4      21   6  160 110  3.9 2.620 16.46  0  1    4    4
## Mazda RX4 Wag  21   6  160 110  3.9 2.875 17.02  0  1    4    4

De esta forma podemos observar la tabla en donde hayamos puesto nuestro filtro de datos que queremos ver y observar. * En este caso observamos que de la columna “hp” queremos que nos mostrara el número 110 * También especificamos que nos mostrara los valores de la columna “gear” con el número 4

Función arrange()

Esta función sirve para ordenar de menor a mayor alguna columna de datos que tengamos dentro de nuestro data frame. * Ejemplo 1

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

De esta ulima forma podemos hacer dos interpretaciones principales: * Podemos clasificar de menor a mayor los datos de la columna “qsec” * Hemos graficado el histograma de frecuencia con su respectiva distribución normal de los datos de la columna “qsec”

arrange(mtcars, drat)
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## 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
## 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
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 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
## 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 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
## 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
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
plot.ts(x = mtcars$drat,
        y = NULL,
        col = "darkgreen", 
        panel.first = grid(col = "grey"), 
        main = "Serie de tiempo de la variable drat del paquete mtcars", 
        ylab = "drat", xlab = "")

De esta ulima forma podemos hacer dos interpretaciones principales: * Podemos clasificar de menor a mayor los datos de la columna “drat” * Hemos graficado la serie de tiempo de la variable “drat”

arrange(mtcars, desc(cyl))
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 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
## 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
## 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
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## 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
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## 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
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 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
## 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
## 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
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Función select()

La función select nos permite seleccionar columnas.

select(mtcars, mpg, cyl, hp)
##                      mpg cyl  hp
## Mazda RX4           21.0   6 110
## Mazda RX4 Wag       21.0   6 110
## Datsun 710          22.8   4  93
## Hornet 4 Drive      21.4   6 110
## Hornet Sportabout   18.7   8 175
## Valiant             18.1   6 105
## Duster 360          14.3   8 245
## Merc 240D           24.4   4  62
## Merc 230            22.8   4  95
## Merc 280            19.2   6 123
## Merc 280C           17.8   6 123
## Merc 450SE          16.4   8 180
## Merc 450SL          17.3   8 180
## Merc 450SLC         15.2   8 180
## Cadillac Fleetwood  10.4   8 205
## Lincoln Continental 10.4   8 215
## Chrysler Imperial   14.7   8 230
## Fiat 128            32.4   4  66
## Honda Civic         30.4   4  52
## Toyota Corolla      33.9   4  65
## Toyota Corona       21.5   4  97
## Dodge Challenger    15.5   8 150
## AMC Javelin         15.2   8 150
## Camaro Z28          13.3   8 245
## Pontiac Firebird    19.2   8 175
## Fiat X1-9           27.3   4  66
## Porsche 914-2       26.0   4  91
## Lotus Europa        30.4   4 113
## Ford Pantera L      15.8   8 264
## Ferrari Dino        19.7   6 175
## Maserati Bora       15.0   8 335
## Volvo 142E          21.4   4 109

De esta forma solamente hemos obtenido las columnas de nuestras tres variables sin tener que seleccionar todas las demás.

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

Función mutate()

La función mutate nos permite crear nuevas columnas que contengan cálculos a partir de las que ya tenemos.

mutate(mtcars, wt_kg = (wt/2.2046) * 1000, wt_kg_caballos = wt_kg/hp) 
##     mpg cyl  disp  hp drat    wt  qsec vs am gear carb     wt_kg wt_kg_caballos
## 1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 1188.4242      10.803856
## 2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4 1304.0914      11.855377
## 3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1 1052.3451      11.315539
## 4  21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1 1458.3144      13.257404
## 5  18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2 1560.3738       8.916422
## 6  18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1 1569.4457      14.947102
## 7  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4 1619.3414       6.609557
## 8  24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2 1446.9745      23.338299
## 9  22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2 1428.8306      15.040322
## 10 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4 1560.3738      12.685966
## 11 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4 1560.3738      12.685966
## 12 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3 1846.1399      10.256333
## 13 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3 1691.9169       9.399538
## 14 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3 1714.5968       9.525538
## 15 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4 2381.3844      11.616509
## 16 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4 2460.3103      11.443304
## 17 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4 2424.4761      10.541200
## 18 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1  997.9135      15.119901
## 19 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2  732.5592      14.087677
## 20 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1  832.3505      12.805393
## 21 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1 1118.1167      11.526976
## 22 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2 1596.6615      10.644410
## 23 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2 1558.1058      10.387372
## 24 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4 1741.8126       7.109439
## 25 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2 1744.0806       9.966175
## 26 27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1  877.7102      13.298640
## 27 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2  970.6976      10.667007
## 28 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2  686.2923       6.073383
## 29 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4 1437.9026       5.446601
## 30 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6 1256.4638       7.179793
## 31 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8 1619.3414       4.833855
## 32 21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2 1260.9997      11.568805

De esta forma hemos creado unas dos culumnas más en nuestro data frame

Función summarise()

La función summarise nos permite crear resúmenes estadísticos para nuestros datos. Por ejemplo vamos a calcular la media y la mediana para las millas por galón recorridas (mpg):

summarise(mtcars, media_mpg = mean(mpg), mediana_mpg = median(mpg))
##   media_mpg mediana_mpg
## 1  20.09062        19.2

Esta función es muy útil combinarla con la “group_by” para obtener nuestros estadísticos de resumen en función a grupos contenidos en una variable. Por ejemplo vamos a calcular la media y la mediana para las millas por galón recorridas (mpg) en función al número los caballos de potencia (hp):

summarise(group_by(mtcars, hp), media_mpg = mean(mpg), mediana_mpg = median(mpg))
## # A tibble: 22 x 3
##       hp media_mpg mediana_mpg
##    <dbl>     <dbl>       <dbl>
##  1    52      30.4        30.4
##  2    62      24.4        24.4
##  3    65      33.9        33.9
##  4    66      29.8        29.8
##  5    91      26          26  
##  6    93      22.8        22.8
##  7    95      22.8        22.8
##  8    97      21.5        21.5
##  9   105      18.1        18.1
## 10   109      21.4        21.4
## # ... with 12 more rows

Función pipes %>%

La función %>% conocida como pipe nos permite encadenar funciones sin tener que ir creando variables para un uso temporal o sin tener que anidar las funciones. También nos ayuda a pensar paso a paso las transformaciones que queremos aplicar.

# Paso a paso creando variables
tmp = group_by(mtcars, cyl, am)
Resumen = summarise(tmp,
                    media_mpg = mean(mpg),
                    desv_est = sd(mpg),
                    mediana_mpg = median(mpg),
                    iqr = IQR(mpg))
#iqr = intercuartiles
Resumen
## # A tibble: 6 x 6
## # Groups:   cyl [3]
##     cyl    am media_mpg desv_est mediana_mpg   iqr
##   <dbl> <dbl>     <dbl>    <dbl>       <dbl> <dbl>
## 1     4     0      22.9    1.45         22.8 1.45 
## 2     4     1      28.1    4.48         28.8 5.70 
## 3     6     0      19.1    1.63         18.6 1.72 
## 4     6     1      20.6    0.751        21   0.650
## 5     8     0      15.0    2.77         15.2 2.57 
## 6     8     1      15.4    0.566        15.4 0.4
#Anidando funciones
summarise(group_by(mtcars, cyl, am),
          media_mpg = mean(mpg),
                    desv_est = sd(mpg),
                    mediana_mpg = median(mpg),
                    iqr = IQR(mpg))
## # A tibble: 6 x 6
## # Groups:   cyl [3]
##     cyl    am media_mpg desv_est mediana_mpg   iqr
##   <dbl> <dbl>     <dbl>    <dbl>       <dbl> <dbl>
## 1     4     0      22.9    1.45         22.8 1.45 
## 2     4     1      28.1    4.48         28.8 5.70 
## 3     6     0      19.1    1.63         18.6 1.72 
## 4     6     1      20.6    0.751        21   0.650
## 5     8     0      15.0    2.77         15.2 2.57 
## 6     8     1      15.4    0.566        15.4 0.4
mtcars %>% 
  group_by(cyl, am) %>% 
  summarise(media_mpg = mean(mpg),
                    desv_est = sd(mpg),
                    mediana_mpg = median(mpg),
                    iqr = IQR(mpg))
## # A tibble: 6 x 6
## # Groups:   cyl [3]
##     cyl    am media_mpg desv_est mediana_mpg   iqr
##   <dbl> <dbl>     <dbl>    <dbl>       <dbl> <dbl>
## 1     4     0      22.9    1.45         22.8 1.45 
## 2     4     1      28.1    4.48         28.8 5.70 
## 3     6     0      19.1    1.63         18.6 1.72 
## 4     6     1      20.6    0.751        21   0.650
## 5     8     0      15.0    2.77         15.2 2.57 
## 6     8     1      15.4    0.566        15.4 0.4

Como podemos observar, simplifica el pensar las operaciones y los pasos a seguir en la manipulación de datos. De esta forma le decimos, toma mtcars y a continuación agrupa sus variables en función al número de cilindros (cyl) y del tipo de cambio (am) y finalmente haz el siguiente resumen estadístico. Veamos otro ejemplo, en este caso vamos a realizar un gráfico con ggplot2 ayudándonos de dplyr.

# Tomamos la libreía de ggplot2
library(ggplot2)

Empezamos con la manipulación de datos:

mtcars %>% 
  filter(hp <= 150) %>% 
  mutate(am = as.factor(am)) %>% 
  ggplot(aes(x = am, y = mpg)) + geom_boxplot(color = c("blue", "red")) + 
  labs(title = "Medias de cajas en función al tipo
de cambio", subtitle = "0 = Carros automáticos, 
1 = carros manual") + theme_dark()

En este caso le hemos indicado que tome mtcars y seleccione los datos de las filas que sean menores o iguales a 150 caballos (hp), que a continuación transforme en categórica la columna tipo de cambio (am) para que ggplot no la interprete como numérica y a continuación realiza un diagrama de cajas en función al tipo de cambio donde 0 es automático y 1 manual.