Filtrar, ordenar y crear columnas en R con dplyr

Con dplyr encadenas pasos usando |>: lee cada línea como «y luego».

Los datos

library(tidyverse)
ventas <- read_csv("https://grafoso.com/r/ventas.csv", show_col_types = FALSE)

Filtrar filas

filter() conserva las filas que cumplen todas las condiciones. Para comparar se usa ==, con dos signos.

ventas |>
  filter(sucursal == "Norte", cantidad > 40)
# A tibble: 7 × 5
  fecha      sucursal producto cantidad precio
  <date>     <chr>    <chr>       <dbl>  <dbl>
1 2026-03-16 Norte    Galletas       41     45
2 2026-04-17 Norte    Café           47     85
3 2026-04-11 Norte    Té             44     60
4 2026-05-20 Norte    Galletas       49     45
5 2026-06-10 Norte    Café           44     85
6 2026-06-22 Norte    Té             42     60
7 2026-06-01 Norte    Galletas       49     45

Crear, elegir y ordenar

mutate() crea columnas, select() elige cuáles ver y arrange(desc()) ordena de mayor a menor.

ventas <- ventas |>
  mutate(importe = cantidad * precio)
ventas |>
  select(fecha, producto, importe) |>
  arrange(desc(importe)) |>
  head(5)
# A tibble: 5 × 3
  fecha      producto importe
  <date>     <chr>      <dbl>
1 2026-05-05 Café        4165
2 2026-04-04 Café        4080
3 2026-04-17 Café        3995
4 2026-05-19 Café        3995
5 2026-06-10 Café        3740

Preguntas frecuentes

¿Cómo pido una condición u otra?

Con |. Por ejemplo, filter(sucursal == "Norte" | sucursal == "Sur"), o con %in%: filter(sucursal %in% c("Norte", "Sur")).

¿Se modificó mi tabla original?

Solo si guardas el resultado con <-. Filtrar sin guardar únicamente muestra el resultado.

Fuentes oficiales