#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

R Markdown

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

Including Plots

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.