library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyverse)
## ── Attaching packages
## ───────────────────────────────────────
## tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.8 ✔ stringr 1.4.1
## ✔ tidyr 1.2.0 ✔ forcats 0.5.2
## ✔ readr 2.1.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
library(janitor)
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(tidyr)
library(lubridate)
##
## Attaching package: 'lubridate'
##
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
bd<-read.csv("C:\\Users\\jimen\\Downloads\\Abarrotes_Ventas-4 (1).csv")
colnames(bd)
## [1] "vcClaveTienda" "DescGiro" "Codigo.Barras"
## [4] "PLU" "Fecha" "Hora"
## [7] "Marca" "Fabricante" "Producto"
## [10] "Precio" "Ult.Costo" "Unidades"
## [13] "F.Ticket" "NombreDepartamento" "NombreFamilia"
## [16] "NombreCategoria" "Estado" "Mts.2"
## [19] "Tipo.ubicación" "Giro" "Hora.inicio"
## [22] "Hora.cierre"
#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)
#count(bd,Hora.inicio, sort=TRUE)
#count(bd,Hora.cierre, sort=TRUE)
tibble(bd)
## # A tibble: 200,620 × 22
## vcClaveTienda DescGiro Codig…¹ PLU Fecha Hora Marca Fabri…² Produ…³ Precio
## <chr> <chr> <dbl> <int> <chr> <chr> <chr> <chr> <chr> <dbl>
## 1 MX001 Abarrot… 7.50e12 NA 19/0… 8:16… NUTR… MEXILAC Nutri … 16
## 2 MX001 Abarrot… 7.50e12 NA 19/0… 8:23… DAN … DANONE… DANUP … 14
## 3 MX001 Abarrot… 7.50e12 NA 19/0… 8:24… BIMBO GRUPO … Rebana… 5
## 4 MX001 Abarrot… 7.50e12 NA 19/0… 8:24… PEPSI PEPSI-… Pepsi … 8
## 5 MX001 Abarrot… 7.50e12 NA 19/0… 8:26… BLAN… FABRIC… Deterg… 19.5
## 6 MX001 Abarrot… 7.50e12 NA 19/0… 8:26… FLASH ALEN Flash … 9.5
## 7 MX001 Abarrot… 7.50e12 NA 19/0… 8:26… VARI… DANONE… Danone… 11
## 8 MX001 Abarrot… 7.50e12 NA 19/0… 8:26… ZOTE FABRIC… Jabon … 9.5
## 9 MX001 Abarrot… 7.51e12 NA 19/0… 8:26… ALWA… PROCTE… T Feme… 23.5
## 10 MX001 Abarrot… 3.22e10 NA 19/0… 15:2… JUMEX JUMEX Jugo D… 12
## # … with 200,610 more rows, 12 more variables: Ult.Costo <dbl>, Unidades <dbl>,
## # F.Ticket <int>, NombreDepartamento <chr>, NombreFamilia <chr>,
## # NombreCategoria <chr>, Estado <chr>, Mts.2 <int>, Tipo.ubicación <chr>,
## # Giro <chr>, Hora.inicio <chr>, Hora.cierre <chr>, and abbreviated variable
## # names ¹Codigo.Barras, ²Fabricante, ³Producto
str(bd)
## 'data.frame': 200620 obs. of 22 variables:
## $ vcClaveTienda : chr "MX001" "MX001" "MX001" "MX001" ...
## $ DescGiro : chr "Abarrotes" "Abarrotes" "Abarrotes" "Abarrotes" ...
## $ Codigo.Barras : num 7.5e+12 7.5e+12 7.5e+12 7.5e+12 7.5e+12 ...
## $ PLU : int NA NA NA NA NA NA NA NA NA NA ...
## $ Fecha : chr "19/06/2020" "19/06/2020" "19/06/2020" "19/06/2020" ...
## $ Hora : chr "8:16:21" "8:23:33" "8:24:33" "8:24:33" ...
## $ Marca : chr "NUTRI LECHE" "DAN UP" "BIMBO" "PEPSI" ...
## $ Fabricante : chr "MEXILAC" "DANONE DE MEXICO" "GRUPO BIMBO" "PEPSI-COLA MEXICANA" ...
## $ Producto : chr "Nutri Leche 1 Litro" "DANUP STRAWBERRY P/BEBER 350GR NAL" "Rebanadas Bimbo 2Pz" "Pepsi N.R. 400Ml" ...
## $ Precio : num 16 14 5 8 19.5 9.5 11 9.5 23.5 12 ...
## $ Ult.Costo : num 12.3 14 5 8 15 ...
## $ Unidades : num 1 1 1 1 1 1 1 1 1 1 ...
## $ F.Ticket : int 1 2 3 3 4 4 4 4 4 5 ...
## $ NombreDepartamento: chr "Abarrotes" "Abarrotes" "Abarrotes" "Abarrotes" ...
## $ NombreFamilia : chr "Lacteos y Refrigerados" "Lacteos y Refrigerados" "Pan y Tortilla" "Bebidas" ...
## $ NombreCategoria : chr "Leche" "Yogurt" "Pan Dulce Empaquetado" "Refrescos Plástico (N.R.)" ...
## $ Estado : chr "Nuevo León" "Nuevo León" "Nuevo León" "Nuevo León" ...
## $ Mts.2 : int 60 60 60 60 60 60 60 60 60 60 ...
## $ Tipo.ubicación : chr "Esquina" "Esquina" "Esquina" "Esquina" ...
## $ Giro : chr "Abarrotes" "Abarrotes" "Abarrotes" "Abarrotes" ...
## $ Hora.inicio : chr "8:00" "8:00" "8:00" "8:00" ...
## $ Hora.cierre : chr "22:00" "22:00" "22:00" "22:00" ...
head(bd, 7)
## vcClaveTienda DescGiro Codigo.Barras PLU Fecha Hora
## 1 MX001 Abarrotes 7.501021e+12 NA 19/06/2020 8:16:21
## 2 MX001 Abarrotes 7.501032e+12 NA 19/06/2020 8:23:33
## 3 MX001 Abarrotes 7.501000e+12 NA 19/06/2020 8:24:33
## 4 MX001 Abarrotes 7.501031e+12 NA 19/06/2020 8:24:33
## 5 MX001 Abarrotes 7.501026e+12 NA 19/06/2020 8:26:28
## 6 MX001 Abarrotes 7.501025e+12 NA 19/06/2020 8:26:28
## 7 MX001 Abarrotes 7.501032e+12 NA 19/06/2020 8:26:28
## Marca Fabricante
## 1 NUTRI LECHE MEXILAC
## 2 DAN UP DANONE DE MEXICO
## 3 BIMBO GRUPO BIMBO
## 4 PEPSI PEPSI-COLA MEXICANA
## 5 BLANCA NIEVES (DETERGENTE) FABRICA DE JABON LA CORONA
## 6 FLASH ALEN
## 7 VARIOS DANONE DANONE DE MEXICO
## Producto Precio Ult.Costo Unidades F.Ticket
## 1 Nutri Leche 1 Litro 16.0 12.31 1 1
## 2 DANUP STRAWBERRY P/BEBER 350GR NAL 14.0 14.00 1 2
## 3 Rebanadas Bimbo 2Pz 5.0 5.00 1 3
## 4 Pepsi N.R. 400Ml 8.0 8.00 1 3
## 5 Detergente Blanca Nieves 500G 19.5 15.00 1 4
## 6 Flash Xtra Brisa Marina 500Ml 9.5 7.31 1 4
## 7 Danone Bipack Fresa Chocoarroz 130G 11.0 11.00 1 4
## NombreDepartamento NombreFamilia NombreCategoria
## 1 Abarrotes Lacteos y Refrigerados Leche
## 2 Abarrotes Lacteos y Refrigerados Yogurt
## 3 Abarrotes Pan y Tortilla Pan Dulce Empaquetado
## 4 Abarrotes Bebidas Refrescos Plástico (N.R.)
## 5 Abarrotes Limpieza del Hogar Lavandería
## 6 Abarrotes Limpieza del Hogar Limpiadores Líquidos
## 7 Abarrotes Lacteos y Refrigerados Postres Refrigerados
## Estado Mts.2 Tipo.ubicación Giro Hora.inicio Hora.cierre
## 1 Nuevo León 60 Esquina Abarrotes 8:00 22:00
## 2 Nuevo León 60 Esquina Abarrotes 8:00 22:00
## 3 Nuevo León 60 Esquina Abarrotes 8:00 22:00
## 4 Nuevo León 60 Esquina Abarrotes 8:00 22:00
## 5 Nuevo León 60 Esquina Abarrotes 8:00 22:00
## 6 Nuevo León 60 Esquina Abarrotes 8:00 22:00
## 7 Nuevo León 60 Esquina Abarrotes 8:00 22:00
tail(bd)
## vcClaveTienda DescGiro Codigo.Barras PLU Fecha Hora
## 200615 MX005 Depósito 7.62221e+12 NA 12/07/2020 1:08:25
## 200616 MX005 Depósito 7.62221e+12 NA 23/10/2020 22:17:37
## 200617 MX005 Depósito 7.62221e+12 NA 10/10/2020 20:30:20
## 200618 MX005 Depósito 7.62221e+12 NA 10/10/2020 22:40:43
## 200619 MX005 Depósito 7.62221e+12 NA 27/06/2020 22:30:19
## 200620 MX005 Depósito 7.62221e+12 NA 26/06/2020 23:43:34
## Marca Fabricante Producto Precio
## 200615 TRIDENT XTRA CARE CADBURY ADAMS Trident Xtracare Freshmint 16.32G 9
## 200616 TRIDENT XTRA CARE CADBURY ADAMS Trident Xtracare Freshmint 16.32G 9
## 200617 TRIDENT XTRA CARE CADBURY ADAMS Trident Xtracare Freshmint 16.32G 9
## 200618 TRIDENT XTRA CARE CADBURY ADAMS Trident Xtracare Freshmint 16.32G 9
## 200619 TRIDENT XTRA CARE CADBURY ADAMS Trident Xtracare Freshmint 16.32G 9
## 200620 TRIDENT XTRA CARE CADBURY ADAMS Trident Xtracare Freshmint 16.32G 9
## Ult.Costo Unidades F.Ticket NombreDepartamento NombreFamilia
## 200615 6.92 1 103100 Abarrotes Dulcería
## 200616 6.92 1 116598 Abarrotes Dulcería
## 200617 6.92 1 114886 Abarrotes Dulcería
## 200618 6.92 1 114955 Abarrotes Dulcería
## 200619 6.92 1 101121 Abarrotes Dulcería
## 200620 6.92 1 100879 Abarrotes Dulcería
## NombreCategoria Estado Mts.2 Tipo.ubicación Giro Hora.inicio
## 200615 Gomas de Mazcar Quintana Roo 58 Esquina Mini súper 8:00
## 200616 Gomas de Mazcar Quintana Roo 58 Esquina Mini súper 8:00
## 200617 Gomas de Mazcar Quintana Roo 58 Esquina Mini súper 8:00
## 200618 Gomas de Mazcar Quintana Roo 58 Esquina Mini súper 8:00
## 200619 Gomas de Mazcar Quintana Roo 58 Esquina Mini súper 8:00
## 200620 Gomas de Mazcar Quintana Roo 58 Esquina Mini súper 8:00
## Hora.cierre
## 200615 21:00
## 200616 21:00
## 200617 21:00
## 200618 21:00
## 200619 21:00
## 200620 21:00
bd1<-bd
bd1<-subset(bd1,select= -c(PLU,Codigo.Barras))
summary(bd1)
## vcClaveTienda DescGiro Fecha Hora
## Length:200620 Length:200620 Length:200620 Length:200620
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Marca Fabricante Producto Precio
## Length:200620 Length:200620 Length:200620 Min. :-147.00
## Class :character Class :character Class :character 1st Qu.: 11.00
## Mode :character Mode :character Mode :character Median : 16.00
## Mean : 19.42
## 3rd Qu.: 25.00
## Max. :1000.00
## Ult.Costo Unidades F.Ticket NombreDepartamento
## Min. : 0.38 Min. : 0.200 Min. : 1 Length:200620
## 1st Qu.: 8.46 1st Qu.: 1.000 1st Qu.: 33967 Class :character
## Median : 12.31 Median : 1.000 Median :105996 Mode :character
## Mean : 15.31 Mean : 1.262 Mean :193994
## 3rd Qu.: 19.23 3rd Qu.: 1.000 3rd Qu.:383009
## Max. :769.23 Max. :96.000 Max. :450040
## NombreFamilia NombreCategoria Estado Mts.2
## Length:200620 Length:200620 Length:200620 Min. :47.0
## Class :character Class :character Class :character 1st Qu.:53.0
## Mode :character Mode :character Mode :character Median :60.0
## Mean :56.6
## 3rd Qu.:60.0
## Max. :62.0
## Tipo.ubicación Giro Hora.inicio Hora.cierre
## Length:200620 Length:200620 Length:200620 Length:200620
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
bd2 <-bd1
bd2 <- bd2[bd2$Precio>0,]
summary(bd2)
## vcClaveTienda DescGiro Fecha Hora
## Length:200473 Length:200473 Length:200473 Length:200473
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Marca Fabricante Producto Precio
## Length:200473 Length:200473 Length:200473 Min. : 0.50
## Class :character Class :character Class :character 1st Qu.: 11.00
## Mode :character Mode :character Mode :character Median : 16.00
## Mean : 19.45
## 3rd Qu.: 25.00
## Max. :1000.00
## Ult.Costo Unidades F.Ticket NombreDepartamento
## Min. : 0.38 Min. : 0.200 Min. : 1 Length:200473
## 1st Qu.: 8.46 1st Qu.: 1.000 1st Qu.: 33978 Class :character
## Median : 12.31 Median : 1.000 Median :106035 Mode :character
## Mean : 15.31 Mean : 1.261 Mean :194101
## 3rd Qu.: 19.23 3rd Qu.: 1.000 3rd Qu.:383065
## Max. :769.23 Max. :96.000 Max. :450040
## NombreFamilia NombreCategoria Estado Mts.2
## Length:200473 Length:200473 Length:200473 Min. :47.0
## Class :character Class :character Class :character 1st Qu.:53.0
## Mode :character Mode :character Mode :character Median :60.0
## Mean :56.6
## 3rd Qu.:60.0
## Max. :62.0
## Tipo.ubicación Giro Hora.inicio Hora.cierre
## Length:200473 Length:200473 Length:200473 Length:200473
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
#Esto no se utilizara puesto que utilizaremos los valores negativos como absolutos.
bd1[duplicated(bd1),]
## [1] vcClaveTienda DescGiro Fecha Hora
## [5] Marca Fabricante Producto Precio
## [9] Ult.Costo Unidades F.Ticket NombreDepartamento
## [13] NombreFamilia NombreCategoria Estado Mts.2
## [17] Tipo.ubicación Giro Hora.inicio Hora.cierre
## <0 rows> (or 0-length row.names)
sum(duplicated(bd1))
## [1] 0
bd3<-bd1
bd3<-distinct(bd3)
bd4<-bd3
bd4$Precio<-abs(bd4$Precio)
unique(bd4$Precio)
## [1] 16.00 14.00 5.00 8.00 19.50 9.50 11.00 23.50 12.00
## [10] 27.00 33.00 13.00 6.00 20.00 21.00 44.00 10.00 12.50
## [19] 14.50 49.00 29.00 10.50 28.00 9.00 32.00 34.00 18.00
## [28] 37.00 3.50 35.00 22.50 2.00 24.00 22.00 7.00 1.50
## [37] 25.00 19.00 39.00 115.00 30.50 31.50 6.50 36.00 16.50
## [46] 26.00 11.50 4.00 63.00 4.50 60.00 58.00 40.50 15.00
## [55] 17.00 30.00 50.00 56.00 13.50 3.00 40.00 15.50 20.50
## [64] 23.00 260.00 29.50 36.50 18.50 21.50 5.50 68.00 53.00
## [73] 27.50 38.00 41.00 47.00 45.00 28.50 7.50 48.00 38.50
## [82] 1.00 65.00 17.50 8.50 31.00 43.00 55.00 26.50 25.50
## [91] 33.50 135.50 130.00 24.50 35.50 110.00 75.00 2.50 34.50
## [100] 69.00 57.00 76.00 39.50 113.00 81.00 125.00 50.50 55.50
## [109] 73.00 32.50 53.50 147.00 70.00 200.00 64.50 43.50 80.00
## [118] 105.00 54.00 140.00 42.00 100.00 61.00 37.50 250.00 1000.00
## [127] 74.00 52.00 135.00 129.00 148.00 66.00 126.00 59.00 145.00
## [136] 0.50 44.50 134.50 72.00 170.00 47.50 42.50 85.00 120.00
## [145] 46.00 12.90 14.17 175.00 122.00 108.00 173.50 51.00 46.50
## [154] 134.00 150.00 197.00 98.00 90.00 116.00 103.00 62.00 77.00
## [163] 155.00 67.00
bd5<-bd4
bd5$Unidades<-ceiling(bd5$Unidades)
unique(bd5$Unidades)
## [1] 1 2 3 5 14 6 4 15 10 11 25 12 18 9 20 8 7 24 61 16 50 60 48 36 13
## [26] 46 80 44 40 17 26 22 23 32 33 72 56 30 37 29 96 27
bd6<-bd5
bd6$Fecha<-as.Date(bd6$Fecha, format = "%d/%m/%Y")
tibble(bd6)
## # A tibble: 200,620 × 20
## vcCla…¹ DescG…² Fecha Hora Marca Fabri…³ Produ…⁴ Precio Ult.C…⁵ Unida…⁶
## <chr> <chr> <date> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 MX001 Abarro… 2020-06-19 8:16… NUTR… MEXILAC Nutri … 16 12.3 1
## 2 MX001 Abarro… 2020-06-19 8:23… DAN … DANONE… DANUP … 14 14 1
## 3 MX001 Abarro… 2020-06-19 8:24… BIMBO GRUPO … Rebana… 5 5 1
## 4 MX001 Abarro… 2020-06-19 8:24… PEPSI PEPSI-… Pepsi … 8 8 1
## 5 MX001 Abarro… 2020-06-19 8:26… BLAN… FABRIC… Deterg… 19.5 15 1
## 6 MX001 Abarro… 2020-06-19 8:26… FLASH ALEN Flash … 9.5 7.31 1
## 7 MX001 Abarro… 2020-06-19 8:26… VARI… DANONE… Danone… 11 11 1
## 8 MX001 Abarro… 2020-06-19 8:26… ZOTE FABRIC… Jabon … 9.5 7.31 1
## 9 MX001 Abarro… 2020-06-19 8:26… ALWA… PROCTE… T Feme… 23.5 18.1 1
## 10 MX001 Abarro… 2020-06-19 15:2… JUMEX JUMEX Jugo D… 12 12 1
## # … with 200,610 more rows, 10 more variables: F.Ticket <int>,
## # NombreDepartamento <chr>, NombreFamilia <chr>, NombreCategoria <chr>,
## # Estado <chr>, Mts.2 <int>, Tipo.ubicación <chr>, Giro <chr>,
## # Hora.inicio <chr>, Hora.cierre <chr>, and abbreviated variable names
## # ¹vcClaveTienda, ²DescGiro, ³Fabricante, ⁴Producto, ⁵Ult.Costo, ⁶Unidades
bd7<-bd6
bd7$Hora<-substr(bd7$Hora, start=1,stop=2)
tibble(bd7)
## # A tibble: 200,620 × 20
## vcCla…¹ DescG…² Fecha Hora Marca Fabri…³ Produ…⁴ Precio Ult.C…⁵ Unida…⁶
## <chr> <chr> <date> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl>
## 1 MX001 Abarro… 2020-06-19 8: NUTR… MEXILAC Nutri … 16 12.3 1
## 2 MX001 Abarro… 2020-06-19 8: DAN … DANONE… DANUP … 14 14 1
## 3 MX001 Abarro… 2020-06-19 8: BIMBO GRUPO … Rebana… 5 5 1
## 4 MX001 Abarro… 2020-06-19 8: PEPSI PEPSI-… Pepsi … 8 8 1
## 5 MX001 Abarro… 2020-06-19 8: BLAN… FABRIC… Deterg… 19.5 15 1
## 6 MX001 Abarro… 2020-06-19 8: FLASH ALEN Flash … 9.5 7.31 1
## 7 MX001 Abarro… 2020-06-19 8: VARI… DANONE… Danone… 11 11 1
## 8 MX001 Abarro… 2020-06-19 8: ZOTE FABRIC… Jabon … 9.5 7.31 1
## 9 MX001 Abarro… 2020-06-19 8: ALWA… PROCTE… T Feme… 23.5 18.1 1
## 10 MX001 Abarro… 2020-06-19 15 JUMEX JUMEX Jugo D… 12 12 1
## # … with 200,610 more rows, 10 more variables: F.Ticket <int>,
## # NombreDepartamento <chr>, NombreFamilia <chr>, NombreCategoria <chr>,
## # Estado <chr>, Mts.2 <int>, Tipo.ubicación <chr>, Giro <chr>,
## # Hora.inicio <chr>, Hora.cierre <chr>, and abbreviated variable names
## # ¹vcClaveTienda, ²DescGiro, ³Fabricante, ⁴Producto, ⁵Ult.Costo, ⁶Unidades
bd7$Hora<- as.integer(bd7$Hora)
## Warning: NAs introduced by coercion
str(bd7)
## 'data.frame': 200620 obs. of 20 variables:
## $ vcClaveTienda : chr "MX001" "MX001" "MX001" "MX001" ...
## $ DescGiro : chr "Abarrotes" "Abarrotes" "Abarrotes" "Abarrotes" ...
## $ Fecha : Date, format: "2020-06-19" "2020-06-19" ...
## $ Hora : int NA NA NA NA NA NA NA NA NA 15 ...
## $ Marca : chr "NUTRI LECHE" "DAN UP" "BIMBO" "PEPSI" ...
## $ Fabricante : chr "MEXILAC" "DANONE DE MEXICO" "GRUPO BIMBO" "PEPSI-COLA MEXICANA" ...
## $ Producto : chr "Nutri Leche 1 Litro" "DANUP STRAWBERRY P/BEBER 350GR NAL" "Rebanadas Bimbo 2Pz" "Pepsi N.R. 400Ml" ...
## $ Precio : num 16 14 5 8 19.5 9.5 11 9.5 23.5 12 ...
## $ Ult.Costo : num 12.3 14 5 8 15 ...
## $ Unidades : num 1 1 1 1 1 1 1 1 1 1 ...
## $ F.Ticket : int 1 2 3 3 4 4 4 4 4 5 ...
## $ NombreDepartamento: chr "Abarrotes" "Abarrotes" "Abarrotes" "Abarrotes" ...
## $ NombreFamilia : chr "Lacteos y Refrigerados" "Lacteos y Refrigerados" "Pan y Tortilla" "Bebidas" ...
## $ NombreCategoria : chr "Leche" "Yogurt" "Pan Dulce Empaquetado" "Refrescos Plástico (N.R.)" ...
## $ Estado : chr "Nuevo León" "Nuevo León" "Nuevo León" "Nuevo León" ...
## $ Mts.2 : int 60 60 60 60 60 60 60 60 60 60 ...
## $ Tipo.ubicación : chr "Esquina" "Esquina" "Esquina" "Esquina" ...
## $ Giro : chr "Abarrotes" "Abarrotes" "Abarrotes" "Abarrotes" ...
## $ Hora.inicio : chr "8:00" "8:00" "8:00" "8:00" ...
## $ Hora.cierre : chr "22:00" "22:00" "22:00" "22:00" ...
sum(is.na(bd7))
## [1] 16440
sum(is.na(bd))
## [1] 199183
Aquí estamos calculando los NA’s del primer bd, y de bd7, ya que la primera si tiene la columna PLU que contiene muchos NA’s y la segunda ya no tiene esta columna.
sapply(bd7, function(x) sum(is.na(x)))
## vcClaveTienda DescGiro Fecha Hora
## 0 0 0 16440
## Marca Fabricante Producto Precio
## 0 0 0 0
## Ult.Costo Unidades F.Ticket NombreDepartamento
## 0 0 0 0
## NombreFamilia NombreCategoria Estado Mts.2
## 0 0 0 0
## Tipo.ubicación Giro Hora.inicio Hora.cierre
## 0 0 0 0
sapply(bd, function(x) sum(is.na(x)))
## vcClaveTienda DescGiro Codigo.Barras PLU
## 0 0 0 199183
## Fecha Hora Marca Fabricante
## 0 0 0 0
## Producto Precio Ult.Costo Unidades
## 0 0 0 0
## F.Ticket NombreDepartamento NombreFamilia NombreCategoria
## 0 0 0 0
## Estado Mts.2 Tipo.ubicación Giro
## 0 0 0 0
## Hora.inicio Hora.cierre
## 0 0
bd8<-bd
bd8<-na.omit(bd8)
summary(bd8)
## vcClaveTienda DescGiro Codigo.Barras PLU
## Length:1437 Length:1437 Min. :6.750e+08 Min. : 1.000
## Class :character Class :character 1st Qu.:6.750e+08 1st Qu.: 1.000
## Mode :character Mode :character Median :6.750e+08 Median : 1.000
## Mean :2.616e+11 Mean : 2.112
## 3rd Qu.:6.750e+08 3rd Qu.: 1.000
## Max. :7.501e+12 Max. :30.000
## Fecha Hora Marca Fabricante
## Length:1437 Length:1437 Length:1437 Length:1437
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Producto Precio Ult.Costo Unidades
## Length:1437 Min. :30.00 Min. : 1.00 Min. :1.000
## Class :character 1st Qu.:90.00 1st Qu.:64.62 1st Qu.:1.000
## Mode :character Median :90.00 Median :64.62 Median :1.000
## Mean :87.94 Mean :56.65 Mean :1.124
## 3rd Qu.:90.00 3rd Qu.:64.62 3rd Qu.:1.000
## Max. :90.00 Max. :64.62 Max. :7.000
## F.Ticket NombreDepartamento NombreFamilia NombreCategoria
## Min. : 772 Length:1437 Length:1437 Length:1437
## 1st Qu.: 99955 Class :character Class :character Class :character
## Median :102493 Mode :character Mode :character Mode :character
## Mean :100595
## 3rd Qu.:106546
## Max. :118356
## Estado Mts.2 Tipo.ubicación Giro
## Length:1437 Min. :58.00 Length:1437 Length:1437
## Class :character 1st Qu.:58.00 Class :character Class :character
## Mode :character Median :58.00 Mode :character Mode :character
## Mean :58.07
## 3rd Qu.:58.00
## Max. :60.00
## Hora.inicio Hora.cierre
## Length:1437 Length:1437
## Class :character Class :character
## Mode :character Mode :character
##
##
##
bd9<- bd
bd9[is.na(bd9)]<-0
summary(bd9)
## vcClaveTienda DescGiro Codigo.Barras PLU
## Length:200620 Length:200620 Min. :8.347e+05 Min. : 0.00000
## Class :character Class :character 1st Qu.:7.501e+12 1st Qu.: 0.00000
## Mode :character Mode :character Median :7.501e+12 Median : 0.00000
## Mean :5.950e+12 Mean : 0.01513
## 3rd Qu.:7.501e+12 3rd Qu.: 0.00000
## Max. :1.750e+13 Max. :30.00000
## Fecha Hora Marca Fabricante
## Length:200620 Length:200620 Length:200620 Length:200620
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Producto Precio Ult.Costo Unidades
## Length:200620 Min. :-147.00 Min. : 0.38 Min. : 0.200
## Class :character 1st Qu.: 11.00 1st Qu.: 8.46 1st Qu.: 1.000
## Mode :character Median : 16.00 Median : 12.31 Median : 1.000
## Mean : 19.42 Mean : 15.31 Mean : 1.262
## 3rd Qu.: 25.00 3rd Qu.: 19.23 3rd Qu.: 1.000
## Max. :1000.00 Max. :769.23 Max. :96.000
## F.Ticket NombreDepartamento NombreFamilia NombreCategoria
## Min. : 1 Length:200620 Length:200620 Length:200620
## 1st Qu.: 33967 Class :character Class :character Class :character
## Median :105996 Mode :character Mode :character Mode :character
## Mean :193994
## 3rd Qu.:383009
## Max. :450040
## Estado Mts.2 Tipo.ubicación Giro
## Length:200620 Min. :47.0 Length:200620 Length:200620
## Class :character 1st Qu.:53.0 Class :character Class :character
## Mode :character Median :60.0 Mode :character Mode :character
## Mean :56.6
## 3rd Qu.:60.0
## Max. :62.0
## Hora.inicio Hora.cierre
## Length:200620 Length:200620
## Class :character Class :character
## Mode :character Mode :character
##
##
##
bd10<-bd
bd10$PLU[is.na(bd10$PLU)]<-mean(bd10$PLU, na.rm=TRUE)
summary(bd10)
## vcClaveTienda DescGiro Codigo.Barras PLU
## Length:200620 Length:200620 Min. :8.347e+05 Min. : 1.000
## Class :character Class :character 1st Qu.:7.501e+12 1st Qu.: 2.112
## Mode :character Mode :character Median :7.501e+12 Median : 2.112
## Mean :5.950e+12 Mean : 2.112
## 3rd Qu.:7.501e+12 3rd Qu.: 2.112
## Max. :1.750e+13 Max. :30.000
## Fecha Hora Marca Fabricante
## Length:200620 Length:200620 Length:200620 Length:200620
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## Producto Precio Ult.Costo Unidades
## Length:200620 Min. :-147.00 Min. : 0.38 Min. : 0.200
## Class :character 1st Qu.: 11.00 1st Qu.: 8.46 1st Qu.: 1.000
## Mode :character Median : 16.00 Median : 12.31 Median : 1.000
## Mean : 19.42 Mean : 15.31 Mean : 1.262
## 3rd Qu.: 25.00 3rd Qu.: 19.23 3rd Qu.: 1.000
## Max. :1000.00 Max. :769.23 Max. :96.000
## F.Ticket NombreDepartamento NombreFamilia NombreCategoria
## Min. : 1 Length:200620 Length:200620 Length:200620
## 1st Qu.: 33967 Class :character Class :character Class :character
## Median :105996 Mode :character Mode :character Mode :character
## Mean :193994
## 3rd Qu.:383009
## Max. :450040
## Estado Mts.2 Tipo.ubicación Giro
## Length:200620 Min. :47.0 Length:200620 Length:200620
## Class :character 1st Qu.:53.0 Class :character Class :character
## Mode :character Median :60.0 Mode :character Mode :character
## Mean :56.6
## 3rd Qu.:60.0
## Max. :62.0
## Hora.inicio Hora.cierre
## Length:200620 Length:200620
## Class :character Class :character
## Mode :character Mode :character
##
##
##
bd11<-bd
bd11[bd11<0]<-0
summary(bd11)
## vcClaveTienda DescGiro Codigo.Barras PLU
## Length:200620 Length:200620 Min. :8.347e+05 Min. : 1.00
## Class :character Class :character 1st Qu.:7.501e+12 1st Qu.: 1.00
## Mode :character Mode :character Median :7.501e+12 Median : 1.00
## Mean :5.950e+12 Mean : 2.11
## 3rd Qu.:7.501e+12 3rd Qu.: 1.00
## Max. :1.750e+13 Max. :30.00
## NA's :199183
## Fecha Hora Marca Fabricante
## Length:200620 Length:200620 Length:200620 Length:200620
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## Producto Precio Ult.Costo Unidades
## Length:200620 Min. : 0.00 Min. : 0.38 Min. : 0.200
## Class :character 1st Qu.: 11.00 1st Qu.: 8.46 1st Qu.: 1.000
## Mode :character Median : 16.00 Median : 12.31 Median : 1.000
## Mean : 19.44 Mean : 15.31 Mean : 1.262
## 3rd Qu.: 25.00 3rd Qu.: 19.23 3rd Qu.: 1.000
## Max. :1000.00 Max. :769.23 Max. :96.000
##
## F.Ticket NombreDepartamento NombreFamilia NombreCategoria
## Min. : 1 Length:200620 Length:200620 Length:200620
## 1st Qu.: 33967 Class :character Class :character Class :character
## Median :105996 Mode :character Mode :character Mode :character
## Mean :193994
## 3rd Qu.:383009
## Max. :450040
##
## Estado Mts.2 Tipo.ubicación Giro
## Length:200620 Min. :47.0 Length:200620 Length:200620
## Class :character 1st Qu.:53.0 Class :character Class :character
## Mode :character Median :60.0 Mode :character Mode :character
## Mean :56.6
## 3rd Qu.:60.0
## Max. :62.0
##
## Hora.inicio Hora.cierre
## Length:200620 Length:200620
## Class :character Class :character
## Mode :character Mode :character
##
##
##
##
bd12<-bd7
boxplot(bd12$Precio,horixontal=TRUE)
boxplot(bd12$Unidades,horizontal=TRUE)
bd12$Dia_de_la_semana<-wday(bd12$Fecha)
bd12$Subtotal<-bd12$Precio * bd12$Unidades
bd12$Utilidad<-bd12$Precio-bd12$Ult.Costo
bd13<-select(bd12, Dia_de_la_semana, Subtotal,Utilidad)
head(bd13)
## Dia_de_la_semana Subtotal Utilidad
## 1 6 16.0 3.69
## 2 6 14.0 0.00
## 3 6 5.0 0.00
## 4 6 8.0 0.00
## 5 6 19.5 4.50
## 6 6 9.5 2.19
bd_limpia<-bd12
write.csv(bd_limpia,file = "abarrotes_bd_limpia.csv", row.names = FALSE)
Los datos hoy en dia verdaderamente pueden ser catalogados como oro, pero pueden tornarse obsoletos al momento de no saber manejarlos ni maniobrarlos. Una parte clave de el manejo de los datos, es la limpieza de los mismos, ya que de esta manera se puede optimizar el uso de estos, logrando hacer un analisis mas profundo y certero.