Saltar al contenido principal
eLearner.app
Módulo 4 · Lección 1 de 27/10 en el curso~12 min
Lecciones del módulo (1/2)

Filtrar y Seleccionar Datos

El Tidyverse es una colección de paquetes de R diseñados para la ciencia de datos que comparten la misma filosofía de diseño y estructura de datos. El paquete principal para la manipulación de datos en esta suite se llama dplyr.

dplyr introduce una serie de funciones ("verbos") que hacen que la manipulación de data frames sea intuitiva.


El Operador Pipe (%>% o |>)

La filosofía del Tidyverse se basa en la concatenación de operaciones. El operador pipe %>% (o el operador nativo |> introducido en R 4.1+) toma el resultado de una expresión y lo pasa como primer argumento a la siguiente función. Esto evita anidar continuamente funciones o crear demasiadas variables temporales.

Code
# Sin pipe:
filter(select(df, name, age), age > 20)

# Con pipe:
df %>%
  select(name, age) %>%
  filter(age > 20)

Verbos de dplyr para Filtrar y Seleccionar

Los tres verbos fundamentales para extraer información de un data frame son:

1. select()

Selecciona columnas específicas del data frame. Puedes listar los nombres de las columnas que deseas mantener o excluir usando el signo -.

Code
# Selecciona las columnas 'name' y 'salary'
select(df, name, salary)

# Elimina la columna 'address'
select(df, -address)

2. filter()

Filtra las filas basándose en una o más condiciones lógicas.

Code
# Filtra las filas donde age es mayor que 30
filter(df, age > 30)

# Filtra con múltiples condiciones (AND lógico)
filter(df, age > 30, department == "HR")

3. arrange()

Ordena las filas basándose en los valores de una o más columnas. Por defecto, el ordenamiento es ascendente. Para el ordenamiento descendente se usa desc().

Code
# Ordena por age (ascendente)
arrange(df, age)

# Ordena por salary (descendente)
arrange(df, desc(salary))

Pruébalo tú

Ejercicio 1: Selecciona columnas

Ejercicio#r.m4.l1.e1
Intentos: 0Cargando...

Dado el data frame df, selecciona las columnas name y age usando la función select() y guarda el resultado en df_selected.

Cargando editor...
Mostrar pista

Usa: df_selected <- select(df, name, age)

Solución disponible después de 3 intentos

Ejercicio#r.m4.l1.e2
Intentos: 0Cargando...

Filtra las filas del data frame df en las que la columna age sea estrictamente mayor que 18, guardando el resultado en df_adults.

Cargando editor...
Mostrar pista

Usa la función filter(df, age > 18) y asigna el resultado a df_adults.

Solución disponible después de 3 intentos

Ejercicio#r.m4.l1.e3
Intentos: 0Cargando...

Usa el operador pipe %>% para concatenar las operaciones: selecciona primero la columna name del data frame df, luego filtra manteniendo solo los registros con age > 18. Guarda el resultado en res.

Cargando editor...
Mostrar pista

Escribe: res <- df %>% filter(age > 18) %>% select(name)

Solución disponible después de 3 intentos

Ejercicio#r.m4.l1.e4
Intentos: 0Cargando...

Ordena las filas del data frame df según la columna salary en orden descendente usando arrange() y desc(). Guarda el resultado en df_sorted.

Cargando editor...
Mostrar pista

Usa arrange(desc(salary)) dentro de una pipeline o como argumento directo.

Solución disponible después de 3 intentos

Ejercicio#r.m4.l1.e5
Intentos: 0Cargando...

Escribe una pipeline completa sobre df: filtra los registros con department igual a 'IT', selecciona las columnas name y salary, y ordena el resultado según salary (orden ascendente). Guarda el resultado final en res.

Cargando editor...
Mostrar pista

Usa el pipe %>% para concatenar filter(department == 'IT'), select(name, salary) y arrange(salary).

Solución disponible después de 3 intentos