Analisis de las ventas de abarrotes

Una empresa con 5 tiendas en el país solicita un analisis de sus ventas

de abarrotes entre mayo y noviembre de 2020

Instalar paquetes y llamar librerias

installed.packages(“dplyr”) library(dplyr) installed.packages(“tisyverse”) library(tidyverse) installed.packages(“janitor”) library(janitor) installed.packages(“lubridate”) library(lubridate)

Importar la base de datos

file.choose() bd <- read.csv(“C:\Users\Héctor de la Garza\Desktop\abarrotes.csv”)

Entender la base de datos

summary(bd)

count(bd, vcClaveTienda, sort=TRUE) count(bd, DescGiro, sort=TRUE) count(bd, Marca, sort=TRUE) count(bd, Fabricante, sort=TRUE) count(bd, Producto, sort=TRUE) count(bd, NombreDepartamento, sort=TRUE) count(bd, NombreFamilia, sort=TRUE) count(bd, NombreCategoria, sort=TRUE) count(bd, Estado, sort=TRUE) count(bd, Tipo.ubicación, sort=TRUE) count(bd, Giro, sort=TRUE)

tibble(bd)

head(bd) tail(bd, n=7)

tabyl(bd, vcClaveTienda, NombreDepartamento)

Hallazgos

Fechas y horas estan en formato de caracter

Precios negativos

No hay una columna de ventas

Limpieza de datos

Existen 6 técnicas para limpiar datos

Tecnica 1. Remover valores irrelevantes

# Eliminar columnas bd1<- bd bd1 <- subset(bd1, select = -c(PLU, Codigo.Barras))

# Eliminar renglones bd2 <- bd1 bd2 <- bd2[bd2$Precio >0,]
summary(bd2)

Tecnica 2. Remover valores duplicados

# Cuantos renglones duplicados tenemos? bd2[duplicated(bd2),] sum(duplicated(bd2))

# Eliminar renglones duplicados bd3 <- bd2 bd3 <- distinct(bd3)

Tecnica 3. Resolver errores infograficos y similares

# Precios en absoluto bd4 <- bd bd4\(Precio <- abs(bd4\)Precio)
summary(bd4)

# Unidades en enteros bd5 <- bd4 bd5\(Unidades <- ceiling(bd5\)Unidades) summary(bd5)

Tecnica 4 covertir tipos de datos

# Convertir de caracteres a fechas bd6 <- bd3 bd6\(Fecha <- as.Date(bd6\)Fecha, format= “%d/%m/%Y”) tibble(bd6)

# Convertir de caracter a entero bd7 <- bd6 bd7\(Hora <- substr(bd7\)Hora, start=1, stop=2) tibble(bd7) bd7\(Hora <- as.integer(bd7\)Hora)
str(bd7)

Tecnica 5 tratar valores faltantes (Na)

# Cuantos Na tengo en la base de datos? sum(is.na(bd7)) sum(is.na(bd))

# Cuantos Na tengo por variable sapply(bd, function(x) sum(is.na(x)))

# Borrar todos los registros Na de una tabla bd8 <- bd bd8 <- na.omit(bd8)
summary(bd8)

# Reemplazar los Na con Ceros bd9 <- bd bd9[is.na(bd9)]<-0
summary(bd9)

# Reemplazar los Na con el promedio bd10 <- bd bd10\(PLU[is.na(bd10\)PLU)] <- mean(bd10$PLU, na.rm=TRUE)
summary(bd10)

Tecnica 6 Verificar datos con metodos estadisticos

bd11 <- bd7 boxplot(bd11\(Precio, horizontal=TRUE) boxplot(bd11\)Unidades, horizontal=TRUE)

Manipular base de datos

# Agregar columnas bd11\(diadelasemana <- wday(bd11\)Fecha) summary(bd11)

# Columna de ventas bd11\(Subtotal <- bd11\)Precio * bd11$Unidades summary(bd11)

Exportar base de datos

bd_limpia <- bd11 write.csv(bd_limpia, file=“Abarrotes_Limpio.csv”, row.names= FALSE)