#Paso 0. Instalar paquetes y llamar librerias install.packages(“dplyr”) library(dplyr) install.packages(“tidyverse”) library(tidyverse) install.packages(“janitor”) library(janitor) install.packages(“lubridate”) library(lubridate) install.packages(“stats”) library(stats)
#Paso 1. Importar base de datos file.choose() bd <- read.csv(“/Users/Regina/Desktop/abarrotes.csv”)
#Paso 2. 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, Mts.2, sort=TRUE) count(bd, Tipo.ubicación, sort=TRUE) count(bd, Giro, sort=TRUE)
tibble(bd)
#Si se quiere mas = head(bd, n=7) head(bd)
#dudas = ?tail tail(bd, n=7) ?Tail
#Tablas y subtablas tabyl(bd, vcClaveTienda, NombreDepartamento) tabyl(bd, NombreFamilia, vcClaveTienda)
#Hallazgos (modificar en tabla) #1. Fechas y Horas estan en formato de caracter #2. Precios negativos #3. No hay columna de ventas
#Paso 3. 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 los renglones duplicados bd3<- bd2 bd3<-distinct(bd3)
#Tecnica 3. Resolver errores tipograficos y similares
#Precios en absoluto bd4 <- bd1 bd4\(Precio <-abs(bd4\)Precio) summary(bd4)
#Unidades en enteros bd5 <- bd4 bd5\(Unidades <- ceiling(bd5\)Unidades) summary(bd5)
#Tecnica 4. Convertir tipos de datos
#Convertir de caracter fecha bd6 <-bd bd6\(Fecha <- as.Date(bd6\)Fecha, format= “$%d/%m/%Y”) tibble(bd6)
#Convertit 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 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)
#Paso 4. Manipulacion de la base de datos
#Agregar columnas bd11\(diadelasemana <- wday(bd11\)Fecha) summary(bd11)
bd11\(subotal <- bd11\)Precio * bd11$unidades summary(bd11)
#Paso 5. Exportar base de datos limpia
bd_limpia <- bd11 write.csv(bd_limpia, file=“abarrotes_bdlimpia.csv”, row.names= FALSE)