###Explorando y describiendo datos de ventas. Análisis del campo Hora de ventas. Se cargarán las librerías para tratar R con fechas. library(lubridate): https://rpubs.com/Maugnetic/282491 library(anytime): https://cran.r-project.org/web/packages/anytime/anytime.pdf ###Cargar las librerías *Utilizar {r warning=FALSE, message=FALSE} para que no muestre mensajes ni advertencias.

library(readr)     # Para leer datos
library(lubridate) # Para fechas y Times
library(anytime)   # Para fechas y Times
library(dplyr)     # Para filters(), select(),...mutate(), arrange()...  

###Cargar los datos En RUTA, reemplazar la ruta con su directorio de trabajo en donde se encuentre Sales.csv

ruta <- "C:/Users/memow/OneDrive/Escritorio/PracticasR" 
#DEFINE LA RUTA EN DONDE ESTÁN LOS DATOS
setwd(ruta)    
ventas <- read_csv("Sales.csv")
## Parsed with column specification:
## cols(
##   Folio = col_character(),
##   Hora = col_character(),
##   Total = col_double(),
##   Pago = col_double(),
##   Cajero = col_character()
## )
tail(ventas) #Los últimos seis registros
## # A tibble: 6 x 5
##   Folio           Hora             Total  Pago Cajero   
##   <chr>           <chr>            <dbl> <dbl> <chr>    
## 1 LBVT18070002268 31/08/2018 16:58  43.8  50   JAQUELINE
## 2 LBVT18070002269 31/08/2018 17:03  16.3  16.3 JAQUELINE
## 3 LBVT18070002270 31/08/2018 17:04  28.3  28.3 JAQUELINE
## 4 LBVT18070002271 31/08/2018 17:06  21.4  50   JAQUELINE
## 5 LBVT18070002272 31/08/2018 17:27  50    50   JAQUELINE
## 6 LBVT18070002273 31/08/2018 17:36  30.1  50   JAQUELINE

####Limpiar la variable Hora de ventas Crear con la descomposición de la variable Hora de ventas. El propósito es tener mejor control de un dato tipo date() y/o datetime(). Por medio de la función substr(), extraer los caracteres adecuados de la variabe Hora, dejar la Hora en una variable nueva llamada fechas y a partir de ésta variable extraer año, mes, dia, hora, minutos. Mediate as.numeric() convertir a formato numérico cada variable. *Se muestran con head() solo los primeros seis regisros.

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 de fecha para su mejor tratamiento fechahora
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"

###Transformar la variable Hora para generear nuevas variables en ventas

ventas <- mutate(ventas, agnio = fagnio, mes = fmes, dia = fdia, hora = fhora, minuto = fminuto, fechahora = fecha_y_hora)
head(ventas)
## # A tibble: 6 x 11
##   Folio Hora   Total  Pago Cajero agnio   mes   dia  hora minuto
##   <chr> <chr>  <dbl> <dbl> <chr>  <dbl> <dbl> <dbl> <dbl>  <dbl>
## 1 LBVT~ 01/0~ 1121.  1121. MAYTE   2018     5     1    12     36
## 2 LBVT~ 01/0~   18.5   20  MAYTE   2018     5     1    12     37
## 3 LBVT~ 01/0~  160    200  MAYTE   2018     5     1    12     38
## 4 LBVT~ 01/0~  398.   398. MAYTE   2018     5     1    12     47
## 5 LBVT~ 01/0~   22     50  MAYTE   2018     5     1    12     48
## 6 LBVT~ 01/0~ 1314.  1314. MAYTE   2018     5     1    12     53
## # ... with 1 more variable: fechahora <dttm>

####Ordenar conforme las variables año, mes, día, hora, minuto ascendente. Se utiliza la variable fechahora Ver los primeros seis head() y últimos seis tail() registros ordenados.

ventas <- arrange(ventas, fechahora)
head(ventas)
## # A tibble: 6 x 11
##   Folio Hora  Total  Pago Cajero agnio   mes   dia  hora minuto
##   <chr> <chr> <dbl> <dbl> <chr>  <dbl> <dbl> <dbl> <dbl>  <dbl>
## 1 LBVT~ 01/0~  88.8   100 ALE H~  2018     5     1     7     46
## 2 LBVT~ 01/0~ 184.    200 ALE H~  2018     5     1     7     53
## 3 LBVT~ 01/0~ 497.    500 ALE H~  2018     5     1     7     58
## 4 LBVT~ 01/0~  11.5    12 ALE H~  2018     5     1     8     13
## 5 LBVT~ 01/0~ 200     200 ALE H~  2018     5     1     8     14
## 6 LBVT~ 01/0~ 177.    500 ALE H~  2018     5     1     8     16
## # ... with 1 more variable: fechahora <dttm>
tail(ventas)
## # A tibble: 6 x 11
##   Folio Hora  Total  Pago Cajero agnio   mes   dia  hora minuto
##   <chr> <chr> <dbl> <dbl> <chr>  <dbl> <dbl> <dbl> <dbl>  <dbl>
## 1 LBVT~ 31/0~  112.  120  ROSI ~  2018     8    31    20     59
## 2 LBVT~ 31/0~  345.  345  ROSI ~  2018     8    31    21      3
## 3 LBVT~ 31/0~  155.  205  ROSI ~  2018     8    31    21      6
## 4 LBVT~ 31/0~  586.  586. ALE H~  2018     8    31    21      6
## 5 LBVT~ 31/0~  113.  113. ALE H~  2018     8    31    21      7
## 6 LBVT~ 31/0~  163.  163. ALE H~  2018     8    31    21     13
## # ... with 1 more variable: fechahora <dttm>

###Interpretación de las ventas de acuerdo 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 de 2018 ###Agrupando datos por mes de ventas

totalespormes <- data.frame(ventas %>% group_by(month(fechahora)) %>% summarize(frec = n(), total = sum(Total)))
totalespormes <- arrange(totalespormes, desc(total))
totalespormes
##   month.fechahora.  frec   total
## 1                8 23088 4412733
## 2                7 21607 4197541
## 3                6 19838 3749558
## 4                5 20348 3748978

###Visualizando la frecuencia por mes de las ventas

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])

####Agrupando datos por día del mes de ventas

totalespordiam <- data.frame(ventas %>% group_by(day(fechahora)) %>% summarize(frec = n(), total = sum(Total)))
totalespordiam <- arrange(totalespordiam, desc(total))
totalespordiam
##    day.fechahora. frec    total
## 1              19 3209 634982.2
## 2              20 3030 613940.9
## 3               5 3054 599102.4
## 4               3 2859 598909.3
## 5               1 2896 598225.3
## 6              26 3127 598143.7
## 7              12 2895 596444.3
## 8              13 2861 581453.2
## 9              27 2886 553716.7
## 10              6 2831 544872.1
## 11             17 2954 534699.1
## 12             10 2801 530426.5
## 13             29 2674 526266.7
## 14              8 2716 525955.2
## 15             15 2763 525826.6
## 16             30 2681 523042.5
## 17              4 2669 508573.0
## 18             22 2844 496941.9
## 19              7 2702 496837.3
## 20             16 2650 496319.4
## 21             18 2613 493902.0
## 22             14 2598 487313.8
## 23             21 2745 482880.4
## 24             24 2616 482324.3
## 25             11 2555 472398.8
## 26              2 2591 467214.4
## 27              9 2533 461478.3
## 28             23 2549 456681.6
## 29             25 2600 442974.2
## 30             28 2452 427454.4
## 31             31 1927 349509.3

###Visualizando la frecuencia por día del mes de las ventas

barplot(totalespordiam$frec, names.arg = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"))

###Visualizando el total por día del mes de las ventas

barplot(totalespordiam$total, names.arg = c("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"))

###Agrupando datos por día de ventas

totalespordia <- data.frame(ventas %>% group_by(day(fechahora),month(fechahora)) %>% summarize(frec = n(), total = sum(Total)))
totalespordia <- arrange(totalespordia, desc(total))
totalespordia
##     day.fechahora. month.fechahora. frec     total
## 1               19                8 1414 326963.96
## 2               26                8 1224 278824.30
## 3                3                6 1035 252807.49
## 4               12                8 1043 252637.99
## 5                5                8 1043 247912.24
## 6                1                7  989 243835.81
## 7               29                7  927 228395.92
## 8               10                6  971 223796.92
## 9               13                5  924 220230.52
## 10               6                5  938 217337.92
## 11               8                7  957 217023.96
## 12              27                5  939 213355.65
## 13              17                6 1050 212959.97
## 14              20                5  882 205145.87
## 15              15                7  892 204735.35
## 16              22                7  992 202843.19
## 17              24                6  851 192391.89
## 18              20                8  921 181989.98
## 19              18                8  848 170467.92
## 20               4                8  757 163600.78
## 21               7                7  765 162076.87
## 22              11                8  757 156810.84
## 23              16                6  766 154663.79
## 24              14                7  769 151641.28
## 25              30                6  722 148591.44
## 26              30                7  724 148183.60
## 27              13                8  729 147950.50
## 28              21                8  823 146588.39
## 29               9                7  712 144720.88
## 30               5                5  755 143837.33
## 31              18                6  614 143766.56
## 32               1                5  713 143370.63
## 33               6                8  718 142928.35
## 34              21                7  771 142575.34
## 35              23                7  689 141714.37
## 36              31                7  708 141014.31
## 37               2                6  725 138920.29
## 38               2                7  695 138426.26
## 39              14                5  655 137144.68
## 40              11                6  676 136190.31
## 41              27                8  767 133035.16
## 42              12                5  664 132893.27
## 43               9                6  696 132876.78
## 44               3                8  646 132302.87
## 45               7                5  697 131037.49
## 46              20                7  672 129177.59
## 47              25                6  661 128161.26
## 48               4                6  698 128131.44
## 49              26                5  699 127044.04
## 50              25                8  758 126689.54
## 51              17                8  675 126552.56
## 52              28                7  695 126526.89
## 53              23                6  640 125776.42
## 54              30                5  623 125314.18
## 55              16                7  652 123254.66
## 56               3                7  585 121335.07
## 57               1                8  652 118464.13
## 58              15                8  617 117876.52
## 59              28                5  656 117511.66
## 60              16                8  616 116334.66
## 61              21                5  616 116272.39
## 62              31                8  648 116025.64
## 63              27                7  594 114781.94
## 64              13                7  641 114133.10
## 65              15                5  673 113642.24
## 66              12                6  583 112849.60
## 67              10                8  654 112784.25
## 68              14                8  633 109328.58
## 69               4                5  606 108690.41
## 70               7                8  651 108593.31
## 71               8                8  596 108448.50
## 72               4                7  608 108150.40
## 73              24                7  604 107923.97
## 74              19                6  576 107558.37
## 75               5                7  629 106574.61
## 76              10                7  579 105788.81
## 77              19                5  630 105103.66
## 78              25                7  598 104293.43
## 79              26                6  617 104122.30
## 80              29                6  577 103261.78
## 81              22                8  704 102463.63
## 82              16                5  616 102066.33
## 83              17                7  605 101709.63
## 84               8                5  573 101356.14
## 85              30                8  612 100953.23
## 86               5                6  627 100778.26
## 87              13                6  567  99139.10
## 88               8                6  590  99126.59
## 89              29                8  596  98687.00
## 90               2                5  585  98419.29
## 91              12                7  605  98063.45
## 92              20                6  555  97627.45
## 93              22                5  556  97580.41
## 94               6                7  615  97356.20
## 95              18                7  611  96624.15
## 96              29                5  574  95922.01
## 97              23                5  576  95648.54
## 98               9                8  551  95414.66
## 99              19                7  589  95356.26
## 100              7                6  589  95129.64
## 101             28                8  586  95104.24
## 102             22                6  592  94054.71
## 103             23                8  644  93542.30
## 104             17                5  624  93476.97
## 105              1                6  542  92554.74
## 106             27                6  586  92543.98
## 107             31                5  571  92469.37
## 108              3                5  593  92463.90
## 109             24                8  619  92008.76
## 110              2                8  586  91448.59
## 111             11                7  548  91150.47
## 112             24                5  542  89999.65
## 113             15                6  581  89572.48
## 114             14                6  541  89199.31
## 115              9                5  574  88466.00
## 116             28                6  515  88311.64
## 117             11                5  574  88247.16
## 118             26                7  587  88153.07
## 119             10                5  597  88056.56
## 120              6                6  560  87249.67
## 121             25                5  583  83829.97
## 122             18                5  540  83043.39
## 123             21                6  535  77444.26

###Visualizando la frecuencia por día de las ventas

barplot(totalespordia$frec)

###Visualizando el total por día de las ventas

barplot(totalespordia$total)

###Agrupando datos por hora de ventas

totalesporhora <- data.frame(ventas %>% group_by(hour(fechahora)) %>% summarize(frec = n(), total = sum(Total)))
totalesporhora <- arrange(totalesporhora, desc(total))
totalesporhora
##    hour.fechahora. frec      total
## 1               20 8540 1813265.26
## 2               19 7771 1597126.93
## 3               14 7590 1513358.72
## 4               15 7528 1499100.52
## 5               13 6743 1447631.00
## 6               16 7715 1324470.19
## 7               18 6500 1279146.00
## 8               17 6898 1226373.05
## 9               12 5570 1130093.27
## 10              11 5887  960757.34
## 11              10 5217  784896.29
## 12               9 4057  648065.07
## 13              21 1832  479069.84
## 14               8 2515  358712.15
## 15               7  518   46744.66

###Visualizando la frecuencia por hora de las ventas

barplot(totalesporhora$frec, names.arg = c("7","8","9","10","11","12","13","14","15","16","17","18","19","20","21"))

###Visualizando el total por hora de las ventas

barplot(totalesporhora$total, names.arg = c("7","8","9","10","11","12","13","14","15","16","17","18","19","20","21"))

####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

###Visualizando totales y frecuencias por cajero

barplot(totalesporcajero$frec, names.arg = totalesporcajero$Cajero)

####Interpretración personal Analizamos un conjunto de datos proveniente muy probablemente de un comercio, ya que se manejan ventas. Tenemos los campos de: Folio, Hora, Total, Pago y Cajero. Pudimos observar que los últimos seis registros de ventas fueron el 31 de Septiembre de 2018 por la cajera Jacqueline.

*Después de limpiar los datos de fecha, deduje que estos registros de ventas son de las fechas 2018-05-01 07:46:00 - 2018-08-31 21:13:00 (1 de Mayo del 2018 a 31 de Agosto de 2018). Los horarios del comercio son de 07:00-21:00.

*Mes en el que más se vendió El mes en el que más se vendió fue el mes de Agosto con $4,412,733 en 23,088 ventas.

*Mes en el que menos se vendió El mes en el que menos se vendió fue el mes de Mayo con $3,748,978 en 20,348 ventas.

*Día en el que más se vendió El día en el que más se vendió fue el 19 de Agosto del 2018 con $326,963.96 en 1,414 ventas.

*Día en el que menos se vendió El día en el que menos se vendió fue el 21 de Junio del 2018 con $77,444.26 en 535 ventas.

*Hora en la que más se vendió La hora en la que más se vendió fue a las 08:00 PM con un total de $1,813,265.26 en 8,540 ventas.

*Hora en la que menos se vendió La hora en la que menos se vendió fue a las 07:00 AM con un total de $46,744.66 en 518 ventas.

*Cajero que más vendió La cajera que más vendió fue Maricruz con un total de $2,377,528 en 11,855 ventas.

*Cajero que menos vendió El cajero que menos vendió fue Eduardo con un total de $20,266.48 en 123 ventas.