library(dplyr)
library(tidyverse)
Dentro de la librería aprenderemos a utilizar distintas funciones. Entre las más importantes se encuentran: * filter() —> Filtrar
arrange() —> Organizar
select() —> Seleccionar
mutate() —> Mudar
summarise() —> Resumir
%> —> Pipe = Tubo (CTRL + SHIFT + M)
CTRL + ALT + I Ayuda a poner un nuevo comando de R en Markdown
CTRL + ALT + P Ayuda a correr todos los datos al mismo tiempo
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
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
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
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
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
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
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.