library(readr) # Para leer datos
library(lubridate) # Para fechas y Times
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
library(anytime) # Para fechas y Times
library(dplyr) # Para filters(), select(),...mutate(), arrange()...
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:lubridate':
##
## intersect, setdiff, union
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
ventas = read_csv ("D:/Escuela/Clases/8vo-semestre/Analisis-inteligente-de-datos/RStudio/datos/Sales.csv")
## Parsed with column specification:
## cols(
## Folio = col_character(),
## Hora = col_character(),
## Total = col_double(),
## Pago = col_double(),
## Cajero = col_character()
## )
ventas <- as.data.frame(ventas) # Es un data frame
head(ventas) # los primeros seis registros
## Folio Hora Total Pago Cajero
## 1 LBVT18010004435 01/05/2018 12:36 1121.20 1121.20 MAYTE
## 2 LBVT18010004436 01/05/2018 12:37 18.50 20.00 MAYTE
## 3 LBVT18010004437 01/05/2018 12:38 160.00 200.00 MAYTE
## 4 LBVT18010004438 01/05/2018 12:47 397.50 397.50 MAYTE
## 5 LBVT18010004439 01/05/2018 12:48 22.00 50.00 MAYTE
## 6 LBVT18010004440 01/05/2018 12:53 1314.19 1314.19 MAYTE
tail(ventas) # los últimos seis registros
## Folio Hora Total Pago Cajero
## 84876 LBVT18070002268 31/08/2018 16:58 43.80 50.00 JAQUELINE
## 84877 LBVT18070002269 31/08/2018 17:03 16.32 16.32 JAQUELINE
## 84878 LBVT18070002270 31/08/2018 17:04 28.32 28.32 JAQUELINE
## 84879 LBVT18070002271 31/08/2018 17:06 21.36 50.00 JAQUELINE
## 84880 LBVT18070002272 31/08/2018 17:27 50.00 50.00 JAQUELINE
## 84881 LBVT18070002273 31/08/2018 17:36 30.14 50.00 JAQUELINE
fechas <- ventas$Hora
# fechas y horas con todos los caracteres
head(fechas)
## [1] "01/05/2018 12:36" "01/05/2018 12:37" "01/05/2018 12:38" "01/05/2018 12:47"
## [5] "01/05/2018 12:48" "01/05/2018 12:53"
fagnio <- as.numeric(substr(fechas, 7,10))
head(fagnio)
## [1] 2018 2018 2018 2018 2018 2018
fmes <- as.numeric(substr(fechas, 4,5))
head(fmes)
## [1] 5 5 5 5 5 5
fdia <- as.numeric(substr(fechas, 1,2))
head(fdia)
## [1] 1 1 1 1 1 1
fhora <- as.numeric(substr(fechas, 12,13))
head(fhora)
## [1] 12 12 12 12 12 12
fminuto <- as.numeric(substr(fechas, 15,16))
head(fminuto)
## [1] 36 37 38 47 48 53
# Generar el formato fecha para su mejor tratamientofechahora
fecha.y.hora <- make_datetime(year = fagnio,
month = fmes,
day=fdia,
hour=fhora,
min=fminuto)
head(fecha.y.hora)
## [1] "2018-05-01 12:36:00 UTC" "2018-05-01 12:37:00 UTC"
## [3] "2018-05-01 12:38:00 UTC" "2018-05-01 12:47:00 UTC"
## [5] "2018-05-01 12:48:00 UTC" "2018-05-01 12:53:00 UTC"
ventas <- mutate(ventas, agnio = fagnio, mes = fmes, dia = fdia, hora=fhora, minuto=fminuto, fechahora = fecha.y.hora)
head(ventas)
## Folio Hora Total Pago Cajero agnio mes dia hora
## 1 LBVT18010004435 01/05/2018 12:36 1121.20 1121.20 MAYTE 2018 5 1 12
## 2 LBVT18010004436 01/05/2018 12:37 18.50 20.00 MAYTE 2018 5 1 12
## 3 LBVT18010004437 01/05/2018 12:38 160.00 200.00 MAYTE 2018 5 1 12
## 4 LBVT18010004438 01/05/2018 12:47 397.50 397.50 MAYTE 2018 5 1 12
## 5 LBVT18010004439 01/05/2018 12:48 22.00 50.00 MAYTE 2018 5 1 12
## 6 LBVT18010004440 01/05/2018 12:53 1314.19 1314.19 MAYTE 2018 5 1 12
## minuto fechahora
## 1 36 2018-05-01 12:36:00
## 2 37 2018-05-01 12:37:00
## 3 38 2018-05-01 12:38:00
## 4 47 2018-05-01 12:47:00
## 5 48 2018-05-01 12:48:00
## 6 53 2018-05-01 12:53:00
ventas <- arrange(ventas, fechahora)
head(ventas)
## Folio Hora Total Pago Cajero agnio mes dia hora
## 1 LBVT18020018825 01/05/2018 07:46 88.85 100 ALE HUERTA 2018 5 1 7
## 2 LBVT18020018826 01/05/2018 07:53 183.75 200 ALE HUERTA 2018 5 1 7
## 3 LBVT18020018827 01/05/2018 07:58 497.18 500 ALE HUERTA 2018 5 1 7
## 4 LBVT18020018828 01/05/2018 08:13 11.50 12 ALE HUERTA 2018 5 1 8
## 5 LBVT18020018829 01/05/2018 08:14 200.00 200 ALE HUERTA 2018 5 1 8
## 6 LBVT18020018830 01/05/2018 08:16 177.20 500 ALE HUERTA 2018 5 1 8
## minuto fechahora
## 1 46 2018-05-01 07:46:00
## 2 53 2018-05-01 07:53:00
## 3 58 2018-05-01 07:58:00
## 4 13 2018-05-01 08:13:00
## 5 14 2018-05-01 08:14:00
## 6 16 2018-05-01 08:16:00
tail(ventas)
## Folio Hora Total Pago Cajero agnio mes dia
## 84876 LBVT18020048670 31/08/2018 20:59 112.50 120.00 ROSI MEJIA 2018 8 31
## 84877 LBVT18020048671 31/08/2018 21:03 344.80 345.00 ROSI MEJIA 2018 8 31
## 84878 LBVT18020048672 31/08/2018 21:06 154.80 205.00 ROSI MEJIA 2018 8 31
## 84879 LBVT18030071088 31/08/2018 21:06 585.65 585.65 ALE HUERTA 2018 8 31
## 84880 LBVT18030071089 31/08/2018 21:07 112.70 112.70 ALE HUERTA 2018 8 31
## 84881 LBVT18030071090 31/08/2018 21:13 162.70 162.70 ALE HUERTA 2018 8 31
## hora minuto fechahora
## 84876 20 59 2018-08-31 20:59:00
## 84877 21 3 2018-08-31 21:03:00
## 84878 21 6 2018-08-31 21:06:00
## 84879 21 6 2018-08-31 21:06:00
## 84880 21 7 2018-08-31 21:07:00
## 84881 21 13 2018-08-31 21:13:00
totalespormes <- data.frame(ventas %>%
group_by(month(fechahora)) %>%
summarize(frec = n(), total = sum(Total)))
totalespormes
## month.fechahora. frec total
## 1 5 20348 3748978
## 2 6 19838 3749558
## 3 7 21607 4197541
## 4 8 23088 4412733
barplot(totalespormes$frec, names.arg = month.name[5:8])
### Visualizando los totales por mes de las ventas
barplot(totalespormes$total, names.arg = month.name[5:8])
### Totales por Cajero ### Agrupando datos por cajero de ventas * Agrupar por cajero * Ordenar por frecuencia
totalesporcajero <- data.frame(ventas %>%
group_by(Cajero) %>%
summarize(frec = n(), total = sum(Total)))
totalesporcajero <- arrange(totalesporcajero, desc(frec))
totalesporcajero
## Cajero frec total
## 1 MARICRUZ 11885 2377528.60
## 2 JUAN MARTIN 10287 2043433.47
## 3 ALE HUERTA 10215 2121820.22
## 4 FERNANDO C 10089 2051828.96
## 5 JESUS PEREZ 6739 1307989.69
## 6 MAYTE 5565 1126737.82
## 7 ROSI MEJIA 4934 1030549.23
## 8 MONSE L. 4236 383628.75
## 9 JANET 3594 681716.26
## 10 MIRIAM 3241 674795.88
## 11 GABY LUCIO 2591 555617.24
## 12 LINA 2367 496577.05
## 13 SARAHY 2103 161650.91
## 14 JAQUELINE 1792 205634.67
## 15 ALE DIAZ 1488 321807.38
## 16 EDUARDO V 1265 215377.09
## 17 MIRIAM LANDIN 906 193589.88
## 18 CLAUDIA 783 47937.92
## 19 MAGO 490 43925.29
## 20 ELI C. 188 46397.50
## 21 EDUARDO 123 20266.48
barplot(totalesporcajero$frec, names.arg = totalesporcajero$Cajero)
Los datos principales que podemos encontrar son las horas de inicio y final de las ventas las cuales son:
INICIO: 01/05/2018 a las 07:46am
FIN: 31/08/2018 a las 09:13pm
Con esto la tienda podria tomar acciones para ver en que horas necesita mas personal o menos.
Los mejores vendedores sonlos cajeros:
El cajero que realizó más ventas fue Maricruz, total de $2,377.528 esto se realizo en un total 11,855 ventas.
El cajero que realizó menos ventas fue Eduardo, total de $20,266.48 esto se realizo en un total de 123 ventas.
se puede apreciar que no por tener mas ventas es el que mas efectivo genera para la empresa tal es el caso de MARICRUZ.
El mes que mas vendio fue el mes de Agosto, con un total de ventas de de $4,412,733
El dia en el que se realizaron mas ventas fue el dia 19 de Agosto de 2018 con un monto total $326,963.96
Por ultimo como conclusion estos ultimos datos pueden ser utilizados para ver que tanto tiene que estar surtida la tienda para ciertas fechas y con que productos