Este es un cuaderno que ilustra las principales funcionalidades de la libreria dplyr:
mutate() agrega nuevas variables que son funciones de variables existentes.
select selecciona variables en función de sus nombres.
filter() Selecciona los casos en función de sus valores
summarise Reduce múltiples valores a un único resumen.
arrange cambia el orden de las filas.
group_by Todas estas funciones se combinan de forma natural lo que permite realizar cualquier operación “por grupo”.
Lo primero que vamos a hacer es cargar la libreria
library(dplyr)
El conjunto de datos iris continene 200 registros de tres especies diferentes de flores del genero iris: Setosa, Virginica y Versicolor
Vamos a importar los datos a nuestro cuaderno
data("iris")
¿Que clase de objeto es iris?
class(iris)
[1] "data.frame"
[1] “data.frame”
Ahora examinenmos los primeros registros:
head(iris)
Ahora miremos los ultimos registros:
tail(iris)
Ahora obtengamos las estadisticas de iris
summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50
La funcion filter() selecciona las filas que cumplan una condicion
(iris_filtered <- iris |>
filter(Species == "setosa"))
La función select() selecciona variables en función de sus nombres. Vamos a elegir las columnas Sepal.Length y Sepal.Width:
# Seleccionando Columnas
(iris_selected <- iris %>%
select(Sepal.Length, Sepal.Width))
Ahora, vamos a ordenar las filas utilizando un atributo en particular:
# Ordenando Filas (Ascendente)
(iris_sorted <- iris %>%
arrange(Sepal.Length))
Nota que las filas se organizan en orden ascendente utilizando la columna que indicamos en el código.
¿Es posible ordenar las filas en orden descendente? Veamos.
# Ordenando Filas (Descendente)
(iris_sorted <- iris %>%
arrange(desc(Sepal.Length)))
La función mutate() crea nuevas columnas que son funciones de variables ya existentes. También puede modificar (si el nombre es el mismo que el de una columna existente) y eliminar columnas (estableciendo su valor en NULL).
# Mutando (Creando/Modificando Columnas)
(iris_mutated <- iris %>%
mutate(Petal.Ratio = Petal.Length / Petal.Width))
Asegúrate de revisar los valores de la columna Petal.Ratio en la tabla de arriba.
# Agrupando Datos y Resumiendo Datos
iris_summary <- iris %>%
group_by(Species) %>%
summarise(
Avg.Sepal.Length = mean(Sepal.Length),
Min.Petal.Width = min(Petal.Width),
Max.Petal.Length = max(Petal.Length)
)
Todas las funciones de dplyr toman un data frame (o tibble) como primer argumento. En lugar de obligar al usuario a guardar objetos intermedios o anidar funciones, dplyr proporciona el operador %>% de magrittr.
x %>% f(y) se transforma en f(x, y), de modo que el resultado de un paso se “conecta” o introduce en el siguiente paso.
Puedes usar the pipe para reescribir múltiples operaciones que puedes leer de izquierda a derecha y de arriba a abajo (leyendo el operador the pipe como “luego”).
La función summarise() calcula un resumen para cada grupo. Esto significa que comienza desde group_keys(), añadiendo la variable de resumen al lado derecho:
Vamos a utilizar el operador the pipe para resumir el conjunto de datos iris.
# Encadenando Operaciones
(iris_result <- iris %>%
filter(Sepal.Length > 5.0) %>%
group_by(Species) %>%
summarise(Avg.Petal.Length = mean(Petal.Length)))
Escribe un bloque de código para resumir el conjunto de datos iris basándote en la variable Sepal.Width.
sessionInfo()
R version 4.6.1 (2026-06-24 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=Spanish_Colombia.utf8
[2] LC_CTYPE=Spanish_Colombia.utf8
[3] LC_MONETARY=Spanish_Colombia.utf8
[4] LC_NUMERIC=C
[5] LC_TIME=Spanish_Colombia.utf8
time zone: America/Bogota
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] dplyr_1.2.1
loaded via a namespace (and not attached):
[1] digest_0.6.39 R6_2.6.1 fastmap_1.2.0
[4] tidyselect_1.2.1 xfun_0.62 magrittr_2.0.5
[7] glue_1.8.1 tibble_3.3.1 knitr_1.52
[10] pkgconfig_2.0.3 htmltools_0.5.9 rmarkdown_2.32
[13] generics_0.1.4 lifecycle_1.0.5 cli_3.6.6
[16] vctrs_0.7.3 withr_3.0.3 compiler_4.6.1
[19] rstudioapi_0.19.0 tools_4.6.1 pillar_1.11.1
[22] evaluate_1.0.5 yaml_2.3.12 rlang_1.3.0
La función glimpse() proporciona un vistazo rápido a la estructura de un conjunto de datos. Muestra las variables en filas (en lugar de columnas), su tipo de dato y los primeros valores disponibles:
# Obteniendo un vistazo de los datos
iris %>% glimpse()
Rows: 150
Columns: 5
$ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4…
$ Sepal.Width <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3…
$ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1…
$ Petal.Width <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0…
$ Species <fct> setosa, setosa, setosa, setosa, setosa, setosa…