Este script muestra un análisis de las compras y

Se exploran las estructuras de los archivos de “olist_orders_dataset.csv”, “olist_order_items_dataset.csv”, “olist_order_payments_dataset.csv” y “olist_order_reviews_dataset.csv”

Por medio de instrucciones R str(), se exploran las estructuras de los archivos y se determinan algunos estadísticos descriptivos por medio de summary() y table() para determinar frecuencias.

Se determina algunas visualziaciones básicas por medio de ggplot2() y plot()

Las librerías

  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(sqldf)
## Loading required package: gsubfn
## Loading required package: proto
## Loading required package: RSQLite
  library(RSQLite)
  library(proto)
  library(gsubfn)
  library(readr)

Cargar los datos de compras

compras <- read.csv("olist_orders_dataset.csv", 
                                       header = TRUE, sep = ",", 
                                       stringsAsFactors = TRUE)

head(compras) # 
##                           order_id                      customer_id
## 1 e481f51cbdc54678b7cc49136f2d6af7 9ef432eb6251297304e76186b10a928d
## 2 53cdb2fc8bc7dce0b6741e2150273451 b0830fb4747a6c6d20dea0b8c802d7ef
## 3 47770eb9100c2d0c44946d9cf07ec65d 41ce2a54c0b03bf3443c3d931a367089
## 4 949d5b44dbf5de918fe9c16f97b45f8a f88197465ea7920adcdbec7375364d82
## 5 ad21c59c0840e6cb83a9ceb5573f8159 8ab97904e6daea8866dbdbc4fb7aad2c
## 6 a4591c265e18cb1dcee52889e2d8acc3 503740e9ca751ccdda7ba28e9ab8f608
##   order_status order_purchase_timestamp   order_approved_at
## 1    delivered      2017-10-02 10:56:33 2017-10-02 11:07:15
## 2    delivered      2018-07-24 20:41:37 2018-07-26 03:24:27
## 3    delivered      2018-08-08 08:38:49 2018-08-08 08:55:23
## 4    delivered      2017-11-18 19:28:06 2017-11-18 19:45:59
## 5    delivered      2018-02-13 21:18:39 2018-02-13 22:20:29
## 6    delivered      2017-07-09 21:57:05 2017-07-09 22:10:13
##   order_delivered_carrier_date order_delivered_customer_date
## 1          2017-10-04 19:55:00           2017-10-10 21:25:13
## 2          2018-07-26 14:31:00           2018-08-07 15:27:45
## 3          2018-08-08 13:50:00           2018-08-17 18:06:29
## 4          2017-11-22 13:39:59           2017-12-02 00:28:42
## 5          2018-02-14 19:46:34           2018-02-16 18:17:02
## 6          2017-07-11 14:58:04           2017-07-26 10:57:55
##   order_estimated_delivery_date
## 1           2017-10-18 00:00:00
## 2           2018-08-13 00:00:00
## 3           2018-09-04 00:00:00
## 4           2017-12-15 00:00:00
## 5           2018-02-26 00:00:00
## 6           2017-08-01 00:00:00

Explorar compras

str(compras)
## 'data.frame':    99441 obs. of  8 variables:
##  $ order_id                     : Factor w/ 99441 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 88951 32546 27770 57386 67044 63543 7553 39236 46083 89697 ...
##  $ customer_id                  : Factor w/ 99441 levels "00012a2ce6f8dcda20d059ce98491703",..: 61761 68730 25514 96584 53774 31118 92191 60518 95387 19282 ...
##  $ order_status                 : Factor w/ 8 levels "approved","canceled",..: 4 4 4 4 4 4 5 4 4 4 ...
##  $ order_purchase_timestamp     : Factor w/ 98875 levels "2016-09-04 21:15:19",..: 27602 90668 94566 35023 55222 15891 6386 9743 667 18535 ...
##  $ order_approved_at            : Factor w/ 90734 levels "","2016-09-15 12:16:38",..: 26910 83755 86887 33880 52143 15447 6368 9419 707 18033 ...
##  $ order_delivered_carrier_date : Factor w/ 81019 levels "","2016-10-08 10:34:01",..: 24736 76469 78219 31487 49664 13978 1 9013 594 17711 ...
##  $ order_delivered_customer_date: Factor w/ 95665 levels "","2016-10-11 13:46:32",..: 25876 88743 91784 33916 50233 15592 1 9155 597 18403 ...
##  $ order_estimated_delivery_date: Factor w/ 459 levels "2016-09-30 00:00:00",..: 213 412 428 252 299 159 100 121 56 175 ...
summary(compras)
##                              order_id    
##  00010242fe8c5a6d1ba2dd792cb16214:    1  
##  00018f77f2f0320c557190d7a144bdd3:    1  
##  000229ec398224ef6ca0657da4fc703e:    1  
##  00024acbcdf0a6daa1e931b038114c75:    1  
##  00042b26cf59d7ce69dfabb4e55b4fd9:    1  
##  00048cc3ae777c65dbb7d2a0634bc1ea:    1  
##  (Other)                         :99435  
##                            customer_id         order_status  
##  00012a2ce6f8dcda20d059ce98491703:    1   delivered  :96478  
##  000161a058600d5901f007fab4c27140:    1   shipped    : 1107  
##  0001fd6190edaaf884bcaf3d49edf079:    1   canceled   :  625  
##  0002414f95344307404f0ace7a26f1d5:    1   unavailable:  609  
##  000379cdec625522490c315e70c7a9fb:    1   invoiced   :  314  
##  0004164d20a9e969af783496f3408652:    1   processing :  301  
##  (Other)                         :99435   (Other)    :    7  
##         order_purchase_timestamp           order_approved_at
##  2017-11-20 10:59:08:    3                          :  160  
##  2017-11-20 11:46:30:    3       2018-02-27 04:31:10:    9  
##  2018-02-19 15:37:47:    3       2017-11-07 07:30:29:    7  
##  2018-03-31 15:08:21:    3       2017-11-07 07:30:38:    7  
##  2018-04-11 10:48:14:    3       2017-12-05 10:30:42:    7  
##  2018-06-01 13:39:44:    3       2018-01-10 10:32:03:    7  
##  (Other)            :99423       (Other)            :99244  
##       order_delivered_carrier_date     order_delivered_customer_date
##                     : 1783                            : 2965        
##  2018-05-09 15:48:00:   47         2016-10-27 17:32:07:    3        
##  2018-05-10 18:29:00:   32         2017-06-19 18:47:51:    3        
##  2018-05-07 12:31:00:   21         2017-12-02 00:26:45:    3        
##  2018-05-02 15:15:00:   16         2018-02-14 21:09:19:    3        
##  2018-07-24 16:07:00:   16         2018-05-08 19:36:48:    3        
##  (Other)            :97526         (Other)            :96461        
##      order_estimated_delivery_date
##  2017-12-20 00:00:00:  522        
##  2018-03-12 00:00:00:  516        
##  2018-03-13 00:00:00:  513        
##  2018-05-29 00:00:00:  513        
##  2018-02-14 00:00:00:  507        
##  2017-12-18 00:00:00:  493        
##  (Other)            :96377
colnames(compras)
## [1] "order_id"                      "customer_id"                  
## [3] "order_status"                  "order_purchase_timestamp"     
## [5] "order_approved_at"             "order_delivered_carrier_date" 
## [7] "order_delivered_customer_date" "order_estimated_delivery_date"

De la anterior sección se exploran lo siguiente:

  • Las variable “order_id” representa algo así como el folio de cada compra
  • La variable “customer_id” representa como en la anterior entrada el identifiador o clave del cliente.
  • No es significativo determinar estadísticos descriptivos para estas variables ya que son valores únicos.

Explorando las variables de compras

Se exploran las varibles más significativas

frecuencias <- data.frame(table(compras$order_status))
frecuencias <- cbind(frecuencias, frecuencias$Freq / sum(frecuencias$Freq) * 100)
colnames(frecuencias) <- c("Estado", "Frecuencia","FrecPorcentual")
frecuencias <- arrange(frecuencias, desc(Frecuencia))
frecuencias
##        Estado Frecuencia FrecPorcentual
## 1   delivered      96478   97.020343721
## 2     shipped       1107    1.113222916
## 3    canceled        625    0.628513390
## 4 unavailable        609    0.612423447
## 5    invoiced        314    0.315765127
## 6  processing        301    0.302692049
## 7     created          5    0.005028107
## 8    approved          2    0.002011243
  • Como se puede apreciar con respeto a la variable “order_status” que significa algo así como el estado que guarda cada compra, puediendo ser de los siguients tipos: delivered, shipped, canceled, unavailable, invoiced, processing, created, approved
  • Existen un porcentaje del 97% de compras entregadas
  • Existe un porcentaje de 1% aproximadamente de compras enviadas aún no entregadas seguramente.
  • Todas las demás compras en condiciones de canceled, unavailable, invoiced, processing, created, approved tienen un porcentaje por debajo del 1%.
  • Las variable o atributos siguientes de: “order_purchase_timestamp”, “order_approved_at”, “order_delivered_carrier_date” “order_delivered_customer_date”, “order_estimated_delivery_date” Son atributo tipo date que indican la fecha y hora en que se ha realizado la compra, fecha de aprobación de la compra, fecha de salida de la compra, fecha de entrega, fecha estimada de entrega
  • Aquí lo que se puede analizar el tiempo de la fecha de compra realizada por el cliente con la fecha de entrega al cliente

Analizando fechas de compra y fechas de entrega

comprasEntregadas <- filter(compras, order_status == "delivered" )

head(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"))
## Time differences in days
## [1]  8 14  9 14  3 17
promedio <- mean(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"), na.rm = TRUE)

maximo <- max(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"), na.rm = TRUE)
  
minimo <- min(difftime(as.Date(comprasEntregadas$order_delivered_customer_date), as.Date(comprasEntregadas$order_purchase_timestamp), units = "days"), na.rm = TRUE)
  
promedio
## Time difference of 12.49685 days
maximo
## Time difference of 210 days
minimo
## Time difference of 0 days
  • Con lo anterior se observa el promedio de dias de una compra es ente 12 y 13 dias.
  • El número de días máximo que se ha tardado una compra es de 210 dias, po el contrario hay compras que se han entregado al cliente de manera inmediata el mismo dia.
  • El análisis a realizar sería ¿cuáles compras están por encima de la media? e identificar las causas así como establecer y regular mediante una política que el tiempo de entrega sea menor a la media, tal vez 10 dias u 8.

Explorando “olist_order_items_dataset.csv” como archivo dealleCompras

detalleCompras <- read.csv("olist_order_items_dataset.csv", 
                                       header = TRUE, sep = ",", 
                                       stringsAsFactors = TRUE)

head(detalleCompras)
##                           order_id order_item_id
## 1 00010242fe8c5a6d1ba2dd792cb16214             1
## 2 00018f77f2f0320c557190d7a144bdd3             1
## 3 000229ec398224ef6ca0657da4fc703e             1
## 4 00024acbcdf0a6daa1e931b038114c75             1
## 5 00042b26cf59d7ce69dfabb4e55b4fd9             1
## 6 00048cc3ae777c65dbb7d2a0634bc1ea             1
##                         product_id                        seller_id
## 1 4244733e06e7ecb4970a6e2683c13e61 48436dade18ac8b2bce089ec2a041202
## 2 e5f2d52b802189ee658865ca93d83a8f dd7ddc04e1b6c2c614352b383efe2d36
## 3 c777355d18b72b67abbeef9df44fd0fd 5b51032eddd242adc84c38acab88f23d
## 4 7634da152a4610f1595efa32f14722fc 9d7a1d34a5052409006425275ba1c2b4
## 5 ac6c3623068f30de03045865e4e10089 df560393f3a51e74553ab94004ba5c87
## 6 ef92defde845ab8450f9d70c526ef70f 6426d21aca402a131fc0a5d0960a3c90
##   shipping_limit_date  price freight_value
## 1 2017-09-19 09:45:35  58.90         13.29
## 2 2017-05-03 11:05:13 239.90         19.93
## 3 2018-01-18 14:48:30 199.00         17.87
## 4 2018-08-15 10:10:18  12.99         12.79
## 5 2017-02-13 13:57:51 199.90         18.14
## 6 2017-05-23 03:55:27  21.90         12.69
str(detalleCompras)
## 'data.frame':    112650 obs. of  7 variables:
##  $ order_id           : Factor w/ 98666 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ order_item_id      : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ product_id         : Factor w/ 32951 levels "00066f42aeeb9f3007548bb9d3f33c38",..: 8629 29598 25668 15323 22080 30848 18182 11123 6385 9013 ...
##  $ seller_id          : Factor w/ 3095 levels "0015a82c2db000af6aaaf3ae2ecb0532",..: 855 2679 1118 1920 2698 1224 1372 1091 1997 2231 ...
##  $ shipping_limit_date: Factor w/ 93318 levels "2016-09-19 00:15:34",..: 24067 7194 45696 89769 1641 9384 39631 81823 60182 81339 ...
##  $ price              : num  58.9 239.9 199 13 199.9 ...
##  $ freight_value      : num  13.3 19.9 17.9 12.8 18.1 ...
colnames(detalleCompras)
## [1] "order_id"            "order_item_id"       "product_id"         
## [4] "seller_id"           "shipping_limit_date" "price"              
## [7] "freight_value"

Explorar detalleCompras

  • En la anterior sección se muestran los primeros seis registros y las 7 variables de detalleCompras.
  • El archivo de “olist_order_items_dataset.csv”" denominado aquí “compras”" se compone por 112650 registos y las siguientes variables:
  • Las variables son: “order_id”, “order_item_id”, “product_id” “seller_id”, “shipping_limit_date” “price”, “freight_value”
  • siendo un total de 7 variables
  • La variable “order_id” es el compra relacionada con el archivo compras al igual que la variable order_item_id que son valores únicos
  • La variable product_id es como la clave del producto
  • La variable “seller_id” es el vendedor que registra la compra o atiende el envío de la compra.
  • La “shipping_limit_date” es como la fecha límite para entrega del producto de la compra
  • La variable “price”, representa el precio del producto y
  • La variable “freight_value” significa algo así como el costo del envío por el tamaño, tipo dimensiones, entre otras cosas del producto.

Determinando algunos estadísticos descriptivos del detalleCompras

summary(detalleCompras)
##                              order_id      order_item_id   
##  8272b63d03f5f79c56e9e4120aec44ef:    21   Min.   : 1.000  
##  1b15974a0141d54e36626dca3fdc731a:    20   1st Qu.: 1.000  
##  ab14fdcfbe524636d65ee38360e22ce8:    20   Median : 1.000  
##  428a2f660dc84138d969ccd69a0ab6d5:    15   Mean   : 1.198  
##  9ef13efd6949e4573a18964dd1bbe7f5:    15   3rd Qu.: 1.000  
##  73c8ab38f07dc94389065f7eba4f297a:    14   Max.   :21.000  
##  (Other)                         :112545                   
##                             product_id    
##  aca2eb7d00ea1a7b8ebd4e68314663af:   527  
##  99a4788cb24856965c36a24e339b6058:   488  
##  422879e10f46682990de24d770e7f83d:   484  
##  389d119b48cf3043d311335e499d9c6b:   392  
##  368c6c730842d78016ad823897a372db:   388  
##  53759a2ecddad2bb87a079a1f1519f73:   373  
##  (Other)                         :109998  
##                             seller_id               shipping_limit_date
##  6560211a19b47992c3666cc44a7e94c0:  2033   2017-07-21 18:25:23:    21  
##  4a3ca9315b744ce9f8e9374361493884:  1987   2018-03-01 02:50:48:    21  
##  1f50f920176fa81dab994f9023523100:  1931   2017-08-30 14:30:23:    20  
##  cc419e0650a3c5ba77189a1882b7556a:  1775   2017-02-03 21:44:49:    15  
##  da8622b14eb17ae2831f4ac5b9dab84a:  1551   2017-11-30 10:30:51:    15  
##  955fee9216a65b617aa5c0531780ce60:  1499   2017-12-21 02:30:41:    15  
##  (Other)                         :101874   (Other)            :112543  
##      price         freight_value   
##  Min.   :   0.85   Min.   :  0.00  
##  1st Qu.:  39.90   1st Qu.: 13.08  
##  Median :  74.99   Median : 16.26  
##  Mean   : 120.65   Mean   : 19.99  
##  3rd Qu.: 134.90   3rd Qu.: 21.15  
##  Max.   :6735.00   Max.   :409.68  
## 
  • El precio medio de los productos es de 120.65, el precio más barto es de 0.85 y el producto más caro es de 6735.00.
  • Por otra parte el precio medio de carga (freight_value) es 19.99, el menor es 0.0, el mayor es de 409.68.

Explorando “”olist_order_payments_dataset.csv" como archivo metodoPago

metodoPago <- read.csv("olist_order_payments_dataset.csv", 
                                       header = TRUE, sep = ",", 
                                       stringsAsFactors = TRUE)

head(metodoPago)
##                           order_id payment_sequential payment_type
## 1 b81ef226f3fe1789b1e8b2acac839d17                  1  credit_card
## 2 a9810da82917af2d9aefd1278f1dcfa0                  1  credit_card
## 3 25e8ea4e93396b6fa0d3dd708e76c1bd                  1  credit_card
## 4 ba78997921bbcdc1373bb41e913ab953                  1  credit_card
## 5 42fdf880ba16b47b59251dd489d4441a                  1  credit_card
## 6 298fcdf1f73eb413e4d26d01b25bc1cd                  1  credit_card
##   payment_installments payment_value
## 1                    8         99.33
## 2                    1         24.39
## 3                    1         65.71
## 4                    8        107.78
## 5                    2        128.45
## 6                    2         96.12
str(metodoPago)
## 'data.frame':    103886 obs. of  5 variables:
##  $ order_id            : Factor w/ 99440 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 71446 65633 14657 72396 25967 16046 46192 23843 12217 2146 ...
##  $ payment_sequential  : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ payment_type        : Factor w/ 5 levels "boleto","credit_card",..: 2 2 2 2 2 2 2 2 2 1 ...
##  $ payment_installments: int  8 1 1 8 2 2 1 3 6 1 ...
##  $ payment_value       : num  99.3 24.4 65.7 107.8 128.4 ...
colnames(metodoPago)
## [1] "order_id"             "payment_sequential"   "payment_type"        
## [4] "payment_installments" "payment_value"

Determinando algunos estadísticos descriptivos del metodoPago

summary(metodoPago)
##                              order_id      payment_sequential
##  fa65dad1b0e818e3ccc5cb0e39231352:    29   Min.   : 1.000    
##  ccf804e764ed5650cd8759557269dc13:    26   1st Qu.: 1.000    
##  285c2e15bebd4ac83635ccc563dc71f4:    22   Median : 1.000    
##  895ab968e7bb0d5659d16cd74cd1650c:    21   Mean   : 1.093    
##  ee9ca989fc93ba09a6eddc250ce01742:    19   3rd Qu.: 1.000    
##  fedcd9f7ccdc8cba3a18defedd1a5547:    19   Max.   :29.000    
##  (Other)                         :103750                     
##       payment_type   payment_installments payment_value     
##  boleto     :19784   Min.   : 0.000       Min.   :    0.00  
##  credit_card:76795   1st Qu.: 1.000       1st Qu.:   56.79  
##  debit_card : 1529   Median : 1.000       Median :  100.00  
##  not_defined:    3   Mean   : 2.853       Mean   :  154.10  
##  voucher    : 5775   3rd Qu.: 4.000       3rd Qu.:  171.84  
##                      Max.   :24.000       Max.   :13664.08  
## 
  • Con la anterior sección se identifica lo siguiente:
  • El mecanismo de pago mas utilizado es por medio de tarjeta de crédito con un total de 76795 compras realizadas por este medio; por boleto y vale son los mecanismos de compra que le siguen; luego por tarjeta de débito y 3 compras sin definir su mecanismo de pago.
  • Se observa que el valor medio de payment_installments es de 2.853, el valor mínimo es 1 y el valor máximo es de 24.00.
  • El valor medio de payment_value es de 154.10, su valor mínimo fue de 0 y el máximo fue de 13664.08

Explorando “olist_order_reviews_dataset.csv” como archivo metodoPago

retroalimentacionCompras <- read.csv("olist_order_reviews_dataset.csv", 
                                       header = TRUE, sep = ",", 
                                       stringsAsFactors = TRUE)

head(retroalimentacionCompras)
##                          review_id                         order_id
## 1 7bc2406110b926393aa56f80a40eba40 73fc7af87114b39712e6da79b0a377eb
## 2 80e641a11e56f04c1ad469d5645fdfde a548910a1c6147796b98fdf73dbeba33
## 3 228ce5500dc1d8e020d8d1322874b6f0 f9e4b658b201a9f2ecdecbb34bed034b
## 4 e64fb393e7b32834bb789ff8bb30750e 658677c97b385a9be170737859d3511b
## 5 f7c4243c7fe1938f181bec41a392bdeb 8e6bfb81e283fa7e4f11123a3fb894f1
## 6 15197aa66ff4d0650b5434f1b46cda19 b18dcdf73be66366873cd26c5724d1dc
##   review_score review_comment_title
## 1            4                     
## 2            5                     
## 3            5                     
## 4            5                     
## 5            5                     
## 6            1                     
##                                                                                     review_comment_message
## 1                                                                                                         
## 2                                                                                                         
## 3                                                                                                         
## 4                                                                    Recebi bem antes do prazo estipulado.
## 5 Parabéns lojas lannister adorei comprar pela Internet seguro e prático Parabéns a todos feliz Páscoa
## 6                                                                                                         
##   review_creation_date review_answer_timestamp
## 1  2018-01-18 00:00:00     2018-01-18 21:46:59
## 2  2018-03-10 00:00:00     2018-03-11 03:05:13
## 3  2018-02-17 00:00:00     2018-02-18 14:36:24
## 4  2017-04-21 00:00:00     2017-04-21 22:02:06
## 5  2018-03-01 00:00:00     2018-03-02 10:26:53
## 6  2018-04-13 00:00:00     2018-04-16 00:39:37
retroalimentacionCompras$review_score <- as.factor(retroalimentacionCompras$review_score)

str(retroalimentacionCompras)
## 'data.frame':    100000 obs. of  7 variables:
##  $ review_id              : Factor w/ 99173 levels "0001239bc1de2e33cb583967c2ca4c67",..: 48013 50030 13322 89282 95962 8159 3060 48292 63672 52194 ...
##  $ order_id               : Factor w/ 99441 levels "00010242fe8c5a6d1ba2dd792cb16214",..: 45052 63915 97051 39397 55031 68818 88966 75802 60275 72099 ...
##  $ review_score           : Factor w/ 5 levels "1","2","3","4",..: 4 5 5 5 5 1 5 5 5 4 ...
##  $ review_comment_title   : Factor w/ 4601 levels "","-","- Luminária de Mesa pelic",..: 1 1 1 1 1 1 1 1 1 3805 ...
##  $ review_comment_message : Factor w/ 36923 levels "","'entrega feita dentro do prazo",..: 1 1 1 31778 25773 1 1 1 1 4357 ...
##  $ review_creation_date   : Factor w/ 637 levels "2016-10-02 00:00:00",..: 413 463 442 147 454 497 230 620 170 536 ...
##  $ review_answer_timestamp: Factor w/ 99010 levels "2016-10-07 18:32:28",..: 45452 56963 51957 5910 54897 66179 15081 93211 7935 75810 ...
colnames(retroalimentacionCompras)
## [1] "review_id"               "order_id"               
## [3] "review_score"            "review_comment_title"   
## [5] "review_comment_message"  "review_creation_date"   
## [7] "review_answer_timestamp"

Determinando algunos estadísticos descriptivos del metodoPago

summary(retroalimentacionCompras)
##                             review_id    
##  08528f70f579f0c830189efc523d2182:    3  
##  0c76e7a547a531e7bf9f0b99cba071c1:    3  
##  1fb4ddc969e6bea80e38deec00393a6f:    3  
##  2172867fd5b1a55f98fe4608e1547b4b:    3  
##  2d6ac45f859465b5c185274a1c929637:    3  
##  308316408775d1600dad81bd3184556d:    3  
##  (Other)                         :99982  
##                              order_id     review_score
##  03c939fd7fd3b38f8485a0f95798f1f6:    3   1:11858     
##  8e17072ec97ce29f0e1f111e598b0c85:    3   2: 3235     
##  c88b1d1b157a9999ce368f218a407141:    3   3: 8287     
##  df56136b8031ecd28e200bb18e6ddb2e:    3   4:19200     
##  0035246a40f520710769010f752e7507:    2   5:57420     
##  013056cfe49763c6f66bda03396c5ee3:    2               
##  (Other)                         :99984               
##       review_comment_title review_comment_message
##                 :88285              :58245       
##  Recomendo      :  426     Muito bom:  230       
##  recomendo      :  346     Bom      :  189       
##  Bom            :  294     muito bom:  122       
##  super recomendo:  271     bom      :  107       
##  Excelente      :  248     (Other)  :41106       
##  (Other)        :10130     NA's     :    1       
##           review_creation_date        review_answer_timestamp
##  2017-12-19 00:00:00:  466     2017-06-15 23:21:05:    4     
##  2018-08-28 00:00:00:  453     2017-02-14 13:58:48:    3     
##  2017-12-20 00:00:00:  445     2017-02-21 23:30:22:    3     
##  2018-05-19 00:00:00:  434     2017-04-13 21:12:43:    3     
##  2018-05-15 00:00:00:  428     2017-05-19 19:12:36:    3     
##  2018-08-14 00:00:00:  426     2017-06-25 14:04:22:    3     
##  (Other)            :97348     (Other)            :99981
  • La secciones anteriores identifican registros de la tabla retroalimentacionCompras del archivo olist_order_reviews_dataset.csv, la cual para efectos de conocimiento de los datos implica lo que los clientes mencionan o dicen por medio de un mensaje acerca de la compra que hicieron. Buzón de quejas y/o nivel de satisfacción de la compra.
  • El archivo tiene 100000 observaciones y 7 variables
  • La variable “review_id” es el folio de la retroalimentación de la compra del cliente.
  • La variable “order_id” es la identificación de la compra relacionada con todos los archivos de compras descritos anteriormente
  • La variable “review_score” recibe un nivel de satisfacción del cliente con valores entre 1 y 5 de la compra que realiza.
  • La variable
  • La varaible review_comment_title" es el título del comentario y por consiguiente la variable “review_comment_message” es el mensaje del comentario de la compra realizada.
  • La variable “review_creation_date” es la fecha en que se revisa el comentario y
  • La variable “review_answer_timestamp” es la fecha de la respuesta al comentario, o tal vez cuando se hace el comentario.

Determinando niveles de satisfacción del cliente

summary(as.numeric(retroalimentacionCompras$review_score))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   4.000   5.000   4.071   5.000   5.000
frecuenciasSatis <- data.frame(table(retroalimentacionCompras$review_score))
frecuenciasSatis <- arrange(frecuenciasSatis, desc(Freq))
frecuenciasSatis
##   Var1  Freq
## 1    5 57420
## 2    4 19200
## 3    1 11858
## 4    3  8287
## 5    2  3235
frecuenciasTitle <- data.frame(table(retroalimentacionCompras$review_comment_title))
frecuenciasTitle <- arrange(frecuenciasTitle, desc(Freq))

head(frecuenciasTitle, 20) # 20 mas frecuentes títulos de msjs
##               Var1  Freq
## 1                  88285
## 2        Recomendo   426
## 3        recomendo   346
## 4              Bom   294
## 5  super recomendo   271
## 6        Excelente   248
## 7        Muito bom   247
## 8           Ótimo   240
## 9  Super recomendo   218
## 10         Ótimo    207
## 11           Otimo   174
## 12              10   158
## 13      Excelente    119
## 14           otimo   105
## 15             bom    97
## 16             Boa    87
## 17      Muito bom     87
## 18      Recomendo     62
## 19  Não recomendo    57
## 20        Perfeito    57
tail(frecuenciasTitle, 20) # 20 menos frecuentes títulos de msjs
##                             Var1 Freq
## 4582 Vou avaliar na instalação    1
## 4583                Vou devolver    1
## 4584      vou devolver o produto    1
## 4585         Vou Instalar ele hj    1
## 4586       Vou recomendar sempre    1
## 4587            Vrio com defeito    1
## 4588                     Wagner     1
## 4589                           X    1
## 4590                      XADREZ    1
## 4591                          xx    1
## 4592                         Xxc    1
## 4593                         Xxx    1
## 4594                        XXXX    1
## 4595                 xxxxxxxxxxx    1
## 4596                     Zenildo    1
## 4597                       Zero     1
## 4598                zero estrela    1
## 4599              Zero nota zero    1
## 4600          zero vou ao procom    1
## 4601                         ZMA    1
 diasRespuesta <- difftime(retroalimentacionCompras$review_answer_timestamp, retroalimentacionCompras$review_creation_date, units= "days")

 frecuenciasDiasResp <- data.frame(table(as.factor(diasRespuesta)))
 frecuenciasDiasResp <- arrange(frecuenciasDiasResp, desc(Freq))
 
head(frecuenciasDiasResp)
##   Var1  Freq
## 1    1 31130
## 2    0 24582
## 3    2 15815
## 4    3 13891
## 5    4  4490
## 6    5  2637
tail(frecuenciasDiasResp)
##                 Var1 Freq
## 382              433    1
## 383              446    1
## 384              471    1
## 385 507.958333333333    1
## 386 511.958333333333    1
## 387 517.958333333333    1
media <- mean(frecuenciasDiasResp$Freq)
maximo <- max(frecuenciasDiasResp$Freq)
minimo <- min(frecuenciasDiasResp$Freq)

media
## [1] 258.3979
maximo
## [1] 31130
minimo
## [1] 1