Introducción a R: Tidyverse práctico (I)

R
Autor/a

Pedro L. Luque

Fecha de publicación

24 de febrero de 2025

Fecha de modificación

24 de febrero de 2025

Resumen

En esta página se proponen varias preguntas para responder usando el sistema tidyverse en R. El dataset “datosVentas” contiene información sobre los artículos comprados.

Palabras clave

R básico, tidyverse, dplyr, tidyr

1 Carga de los datos

Id IdCliente IdVendedor Dia Mes Ano ValorVendido IdProducto IdCategoriaProducto
1 13 38 20 11 2022 321.28 10 5
2 5 6 18 11 2020 209.65 14 7
3 20 30 14 8 2020 284.49 3 1
4 30 22 22 11 2021 321.68 14 7
5 15 3 1 11 2020 310.01 17 8
6 25 20 7 7 2022 350.87 9 4
options(width = 120)
str(datosVentas)
'data.frame':   100000 obs. of  9 variables:
 $ Id                 : int  1 2 3 4 5 6 7 8 9 10 ...
 $ IdCliente          : int  13 5 20 30 15 25 17 6 8 5 ...
 $ IdVendedor         : int  38 6 30 22 3 20 3 10 1 5 ...
 $ Dia                : int  20 18 14 22 1 7 22 27 26 22 ...
 $ Mes                : int  11 11 8 11 11 7 11 8 8 12 ...
 $ Ano                : int  2022 2020 2020 2021 2020 2022 2022 2022 2020 2021 ...
 $ ValorVendido       : num  321 210 284 322 310 ...
 $ IdProducto         : int  10 14 3 14 17 9 8 15 3 8 ...
 $ IdCategoriaProducto: num  5 7 1 7 8 4 4 7 1 4 ...
sort(unique(datosVentas$Ano))
[1] 2019 2020 2021 2022

El dataset “datosVentas” contiene información sobre los artículos comprados por clientes en un comercio. Cada ticket contiene las siguientes columnas:

  • Id: identificador de de compra
  • IdCliente: identificador del cliente
  • IdVendedor: identificador del vendedor
  • Dia: día de la venta
  • Mes: mes de la venta
  • Ano: año de la venta
  • ValorVendido: valor total del artículo comprado
  • IdProducto: identificador del producto
  • IdCategoriaProducto: identificador de la categoría del producto

2 Consola R para responder a las cuestiones planteadas

  • Solo tiene que escribir el código en la consola y presionar Ctrl+Enter (Cmd+Enter en MacOS) o sobre el botón “Run Code” para ejecutarlo.

  • La librería “tidyverse” ya está cargada y es la única librería que puede utilizar salvo el sistema base de R.

  • El dataset “datosVentas” ya está cargado.

3 Ejercicios con preguntas sobre el dataset “datosVentas”

Responda a las cuestiones usando el sistema tidyverse:

  1. ¿Cuál fue el vendedor que hizo más ventas en total?

  2. ¿En qué 3 categorías de producto se vendió más?

  3. ¿Qué 5 clientes compraron más artículos en el mes de enero de 2020?

  4. ¿Qué 10 días del 2020 se vendió más? Mostrarlos de forma descendente, indicando la venta realizada y también el mes al que pertenecían.

  5. Responda a la cuestión “3” sin usar el sistema tidyverse, es decir, usando recursos del sistema base.

  6. ¿Qué clientes compraron más de un artículo en un mismo día? Ordenar de forma descendente por número de artículos.

  7. ¿Cuál es la media de ventas por vendedor?

  8. ¿cuál es el mes de cada año con más ventas en términos de ingresos totales (no en número de artículos)?

  9. ¿En qué 3 categorias de producto se vendieron más unidades?

  10. ¿Qué vendedor vendió más artículos?

  11. ¿Cuál ha sido el producto más vendido?

  12. ¿Cuál ha sido el mes con más ventas en 2021?

  13. Calcular la venta total por producto en el año 2020, ordenadas por venta total descendente.

  14. ¿En que año los ingresos fueron mayores?

  15. ¿Cuáles fueron los vendedores que más ingresos generaron en cada mes del año 2020?

  16. ¿Cuáles fueron los 5 productos más vendidos en verano de 2021?

  17. ¿Cuáles son los 4 meses con mayores ventas en 2021?

  18. ¿Cuales son los 3 productos mas vendidos en 2019 y su media de venta por meses?

  19. ¿Qué combinación de vendedor y cliente generó la mayor cantidad de ingresos totales en todo el periodo del dataset?

  20. ¿Qué producto ha generado un mayor beneficio? (Es decir, qué producto acumula un Valor-Vendido más grande)

  21. ¿Cuantas ventas hubo cada uno de los años?

  22. ¿Qué 3 productos se han vendido peor en ventas durante el 2022?

  23. ¿Cuántas ventas hizo cada vendedor en cada mes en 2020?

  24. ¿Qué categoría de producto generó mayor valor de ventas en el primer trimestre de 2020?

  25. Obtenga las categorías de productos con los valores medios de ventas por compra más altos?

  26. Las 10 combinaciones Cliente-Vendedor menos comunes (pero que se hayan dado al menos una vez) en 2020.

  27. ¿Qué 3 clientes han gastado más dinero en total?

  28. ¿Qué vendedor ha logrado menos ingresos vendiendo el producto con IdProducto = 8 en 2021?

  29. Calcular los mejores tres años de ventas.

  30. ¿Cuáles fueron los 5 productos más veces vendidos en 2020?

  31. ¿Cuál fue el mes con más ventas en 2020?

  32. ¿Cuál fue el producto más vendido en el año 2021?

  33. ¿Cuál fue la compra más elevada que efectuó el cliente número 23 en el año 2022?

  34. ¿Qué 20 días de 2021 se vendió más?

  35. ¿Cuáles fue el producto más vendido en total?

  36. Los 5 productos que se vendieron más desde el 1 de septiembre de 2020 hasta el 31 de diciembre de 2021?

  37. ¿Qué vendedor tuvo la mayor venta en un solo día durante el año 2020?

  38. ¿Qué producto fue el más comprado por el cliente que más compró en 2020? Se puede responder con dos o más partes.

  39. ¿Cuáles fueron los 3 clientes que más compraron la categoría menos vendida en 2021? Se puede responder con dos o más partes.

  40. ¿Cuál es el año en el que el producto con id 6 ha tenido más ventas?

  41. ¿Cuáles fueron los 4 productos con más ventas en 2020?

  42. Buscar los 3 primeros vendedores que tuvieron la compra por mayor valor?

  43. Buscar los clientes con mayor compra por un valor entre 300 y 400, del año 2021, así como el número de compras que realizaron en una sola tabla.

  44. ¿Cuál es el producto más vendido en un sólo día en todo el tiempo registrado?

  45. ¿Qué año registró más ventas, mostrando también el número de artículos distintos que se vendió?

  46. ¿Qué 3 meses se vendieron un mayor valor de venta, indicando adicionalmente en la misma tabla quien fue el vendedor que vendió más en ese mes y cuánto vendió? (varias partes y dificultad alta)

4 Algunos ejemplos de preguntas y respuestas con el sistema tidyverse

4.1 ¿Cuál fue el vendedor que hizo más ventas en total en el año 2021?

datosVentas |> 
  filter(Ano == 2021) |> 
  group_by(IdVendedor) |> 
  summarise(Ventas = n()) |> 
  arrange(desc(Ventas)) |> 
  head(1) |> 
  kable()
IdVendedor Ventas
37 564

4.2 ¿Cuáles fueron los 3 vendedores que más artículos vendieron en un solo día?

datosVentas |> 
  group_by(Ano, Mes, Dia, IdVendedor) |> 
  summarise(NumArticulos = n()) |> 
  arrange(desc(NumArticulos)) |> 
  head(3)