#Explorando y describiendo datos de ventas.
#Análisi del campo Hora de ventas
#Se cagarán librerÃas para trata r con fechas
#library(lubridate) https://rpubs.com/Maugnetic/282491
#library(anytime)https://cran.r-project.org/web/packages/anytime/anytime.pdf
#Cargar librerias
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
## Warning: package 'anytime' was built under R version 3.6.3
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
#Cargar los datos
ventas = read_csv ("C:/Users/esemi/OneDrive/Documentos/RSTUDIO/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
#Limpiar la variable Hora de ventas
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"
#Transforar la variable Hora para generar nuevas variables en ventas
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
#Ordenar conforme las variables año mes, dia hora minuto ascendente
#Se utiliza la variable fechahora
#Ver los primeros seis y últimos seis registros ordenados
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
#Interpretación de las ventas de cuerdo a fechahora
#Las ventas inician con fecha: 2018-05-01 07:46:00
#Las ventas terminan con fecha: 2018-08-31 21:13:00
#Del 1 de Mayo del 2018 al 31 de Agosto 2018
#Agrupando datos por mes de ventas
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
#Visualizando la frecuencia por mes de las ventas
barplot(totalespormes$frec, names.arg = month.name[5:8])
barplot(totalespormes$total, names.arg = month.name[5:8])
#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
#Visualziando totales y frecuencias por cajero
barplot(totalesporcajero$frec, names.arg = totalesporcajero$Cajero)
#Interpretación
#A la hora de analizar nuestros datos principalmente es necesario ver que nos enfocaremos en la fecha y hora. Primeramente la hora de servicio es 07:00 am a 09:00 pm
#Las ventas inician inician con fecha del 01/05/2018 a las 07:46am
#Las ventas terminan con fecha del 31/08/2018 a las 09:13pm
#El cajero que realizo más ventas fue Maricruz, total de $2,377.528 esto se realizo en un total 11,855 ventas.
#El cajero que realizo menos ventas fue Eduardo, total de $20,266.48 esto se realizo en un total de 123 ventas.
#Ademas de poder visualizar la hora en que inician las ventas, la hora de fin y los cajeros de mayor y menor venta, se puede visualizar el dia en el cual hubo una mayor venta, el mes y hora en los cuales se realizo una alza de ventas.
#Para poder observarlo el mes que mas vendio fue el mes de Agosto, con una cantidad de $4,412,733
#La hora que mas vendio fue a las 08:00pm con un total de $1,813,265.26 *Y por ultimo el dia en el que se realizaron mas ventas fue el dia 19 de Agosto de 2018 con un monto total $326,963.96
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE
parameter was added to the code chunk to prevent printing of the R code that generated the plot.