1 Introducción

Este es un cuaderno que iluestra las orincipales funcionalidaddes de la libreria dplyr: - mutate() Crea o modifica columnas. Función: calcular nuevos valores a partir de variables existentes.

2.configuración

lo primero que vamos a hacer es cargar las librerias

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

3. el conjunto de datos iris

el conjunto de datos iris contiene 200 registros de tres especies diferentes del genero de flores del genero iris: setosa, versicolor, virginica

vamos a importar los datos a nuestro cuaderno:

data(iris)

que calse de objeto es iris?

class(iris)
## [1] "data.frame"

cual es su estructura?

str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

cual es el tamaño de la tabla?

dim(iris)
## [1] 150   5

ahora examinemos los primeros registros:

head(iris)

ahora miremos los ultimos registros

tail(iris)

ahora obtengamos las etsdisticas 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  
##                 
##                 
## 

4. funcionalidades de dplayr

la funcion filter() selecciona las filas que cumplan una condición. por ejemplo, seleccionemos aquellas filas que corresponden a la especie de setosa

# Filtering Rows
iris %>% filter(Species == "setosa")

ahora vamos a seleccionar todos los registros en los cuales la longitud del petalo sea mayor o igual que 1.7:

# Selecting Columns
(iris_selected <- iris %>%
  select(Sepal.Length, Sepal.Width))

Ahora, vamos a ordenar las filas utilizando un atributo específico:

# Arranging (Sorting) Rows
(iris_sorted <- iris %>%
  arrange(Sepal.Length))

Ten en cuenta que las filas se organizan en orden ascendente utilizando la columna que especificamos en el código. ¿Es posible ordenar las filas en orden descendente? Veámoslo.

# Arranging (Sorting) Rows
(iris_sorted <- iris %>%
  arrange(desc(Sepal.Length)))

La función mutate() crea nuevas columnas a partir de operaciones realizadas con variables existentes. También puede modificar columnas (si el nombre coincide con el de una columna existente) y eliminar columnas (asignándoles el valor NULL).

# Mutating (Creating/Modifying Columns)
(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.

# Grouping Data and Summarizing Data
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)
  )

5. La gente:

Todas las funciones de dplyr reciben un marco de datos (data frame) o una tabla (tibble) como primer argumento. En lugar de obligar al usuario a guardar objetos intermedios o anidar funciones, dplyr proporciona el operador %>%, proveniente del paquete magrittr. x %>% f(y) se transforma en f(x, y), de modo que el resultado de un paso se pasa al siguiente. Puedes utilizar el operador pipe para reescribir varias operaciones que se pueden leer de izquierda a derecha y de arriba hacia abajo (interpretando el operador %>% como «luego»). La función summarise() calcula un resumen para cada grupo. Esto significa que parte de group_keys() y añade la variable de resumen en el lado derecho. Vamos a utilizar el operador pipe para resumir el conjunto de datos iris.

# Chaining Operations
(iris_result <- iris %>%
  filter(Sepal.Length > 5.0) %>%
  group_by(Species) %>%
  summarise(Avg.Petal.Length = mean(Petal.Length)))

7. trabajo en casa

Escribe un bloque de código para resumir el conjunto de datos iris basándote en la variable Sepal.Width

iris %>%
  summarise(
    promedio = mean(Sepal.Width),
    minimo = min(Sepal.Width),
    maximo = max(Sepal.Width)
  )

7. El ambiente

sessionInfo()
## R version 4.6.1 (2026-06-24 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=Spanish_Spain.utf8  LC_CTYPE=Spanish_Spain.utf8   
## [3] LC_MONETARY=Spanish_Spain.utf8 LC_NUMERIC=C                  
## [5] LC_TIME=Spanish_Spain.utf8    
## 
## time zone: America/Bogota
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   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     tidyselect_1.2.1 
##  [5] xfun_0.61         magrittr_2.0.5    glue_1.8.1        cachem_1.1.0     
##  [9] tibble_3.3.1      knitr_1.52        pkgconfig_2.0.3   htmltools_0.5.9  
## [13] generics_0.1.4    rmarkdown_2.32    lifecycle_1.0.5   cli_3.6.6        
## [17] vctrs_0.7.3       sass_0.4.10       withr_3.0.3       jquerylib_0.1.4  
## [21] compiler_4.6.1    rstudioapi_0.19.0 tools_4.6.1       pillar_1.11.1    
## [25] evaluate_1.0.5    bslib_0.12.0      yaml_2.3.12       rlang_1.3.0      
## [29] jsonlite_2.0.0

```