Visualizndo compras por fechas, es un informe que permite visualizar datos de las compras de brazilian-commerce

También visualiza gráficos de productos y vendedores

Las librerías

library(sqldf)
## Loading required package: gsubfn
## Loading required package: proto
## Loading required package: RSQLite
library(RSQLite)
library(proto)
library(gsubfn)

library(readr)
library(ggplot2)
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("nycflights13") # Para join

Los datos de compras

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

Visualiznado datos por Estao de las compras

# Visualizando datos 
frecuencias <- data.frame(table(compras$order_status))
colnames(frecuencias) <- c("Estado", "Frecuencia")
frecuencias <- arrange(frecuencias, desc(Frecuencia))
frecuencias
##        Estado Frecuencia
## 1   delivered      96478
## 2     shipped       1107
## 3    canceled        625
## 4 unavailable        609
## 5    invoiced        314
## 6  processing        301
## 7     created          5
## 8    approved          2
Estado <- frecuencias$Estado # Eje x
Frecuencia <- frecuencias$Frecuencia # Eje y
ggplot(data=frecuencias, aes(x=Estado, y=Frecuencia, 
                       fill=Estado))  + 
  geom_bar(stat="identity") +
  #scale_fill_grey(start = 0.2, end = 0.8,na.value = "red") +
  ggtitle("Estado de las compras de brazilian ecommerce")

Visualizando compras por años

# En que año se ha vendido mas
agnio <- group_by(compras, format(as.Date(order_purchase_timestamp), "%Y"))

agnio <- data.frame(summarise(agnio,
          num = n()))
colnames(agnio) <- c("Anio", "Cantidad")
agnio
##   Anio Cantidad
## 1 2016      329
## 2 2017    45101
## 3 2018    54011
Anios <- agnio$Anio
Cantidad <- agnio$Cantidad 
ggplot(data=agnio, aes(x=Anios, y=Cantidad, 
                             fill=Anios))  + 
  geom_bar(stat="identity") +
 # scale_fill_grey(start = 0.2, end = 0.8,na.value = "red") +
  ggtitle("Compras por Años de brazilian ecommerce")

Visualizando compras por mes

mes <- group_by(compras, format(as.Date(order_purchase_timestamp), "%m"),
                format(as.Date(order_purchase_timestamp), "%Y"))
mes <- data.frame(summarise(mes,
          num = n()))
colnames(mes) <- c("Mes", "Anio", "Cantidad")
mes <- arrange(mes, desc(Anio), Mes)
mes
##    Mes Anio Cantidad
## 1   01 2018     7269
## 2   02 2018     6728
## 3   03 2018     7211
## 4   04 2018     6939
## 5   05 2018     6873
## 6   06 2018     6167
## 7   07 2018     6292
## 8   08 2018     6512
## 9   09 2018       16
## 10  10 2018        4
## 11  01 2017      800
## 12  02 2017     1780
## 13  03 2017     2682
## 14  04 2017     2404
## 15  05 2017     3700
## 16  06 2017     3245
## 17  07 2017     4026
## 18  08 2017     4331
## 19  09 2017     4285
## 20  10 2017     4631
## 21  11 2017     7544
## 22  12 2017     5673
## 23  09 2016        4
## 24  10 2016      324
## 25  12 2016        1
AnioMes <- paste(substr(mes$Anio,3,4),mes$Mes, sep = "/")
ggplot(data=mes, aes(x=AnioMes, y=Cantidad, 
                       fill=AnioMes))  + 
  geom_bar(stat="identity") +
  # scale_fill_grey(start = 0.2, end = 0.8,na.value = "red") +
  ggtitle("Compras por Años/Mes de brazilian ecommerce")

Visualizando método de pago

Productos que mas se vende, cruzados con detalleCompras

Los datos de productos

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

Cuales Categoria de productos se compan más

frecuencias <- data.frame(table(detalleCompras$product_id))
colnames(frecuencias) <- c("Producto", "Frecuencia")
frecuencias <- arrange(frecuencias, desc(Frecuencia))
#frecuencias

productoName <- filter(productos, product_id %in% frecuencias$Producto) %>% select(product_id, product_category_name)

join <- frecuencias %>% inner_join(productoName, by=c("Producto" = "product_id"))

masComprados <- head(join, 20)# Los 20 productos /categorias mas comprados

masComprados
##                            Producto Frecuencia  product_category_name
## 1  aca2eb7d00ea1a7b8ebd4e68314663af        527       moveis_decoracao
## 2  99a4788cb24856965c36a24e339b6058        488        cama_mesa_banho
## 3  422879e10f46682990de24d770e7f83d        484     ferramentas_jardim
## 4  389d119b48cf3043d311335e499d9c6b        392     ferramentas_jardim
## 5  368c6c730842d78016ad823897a372db        388     ferramentas_jardim
## 6  53759a2ecddad2bb87a079a1f1519f73        373     ferramentas_jardim
## 7  d1c427060a0f73f6b889a5c7c61f2ac4        343 informatica_acessorios
## 8  53b36df67ebb7c41585e8d54d6772e08        323     relogios_presentes
## 9  154e7e31ebfa092203795c972e5804a6        281           beleza_saude
## 10 3dd2a17168ec895c781a9191c1e95ad7        274 informatica_acessorios
## 11 2b4609f8948be18874494203496bc318        260           beleza_saude
## 12 7c1bd920dbdf22470b68bde975dd3ccf        231           beleza_saude
## 13 a62e25e09e05e6faf31d90c6ec1aa3d1        226     relogios_presentes
## 14 5a848e4ab52fd5445cdc07aab1c40e48        197                       
## 15 bb50f2e236e5eea0100680137654686c        195           beleza_saude
## 16 e0d64dcfaa3b6db5c54ca298ae101d05        194     relogios_presentes
## 17 42a2c92a0979a949ca4ea89ec5c7b934        183  utilidades_domesticas
## 18 e53e557d5a159f5aa2c5e995dfdf244b        183 informatica_acessorios
## 19 b532349fe46b38fbc7bb3914c1bdae07        169       moveis_decoracao
## 20 35afc973633aaeb6b877ff57b2793310        165          casa_conforto
Prod <- substr(masComprados$product_category_name,1,6)

ggplot(data=masComprados, aes(x=Prod, y=Frecuencia, 
                       fill=product_category_name))  + 
  geom_bar(stat="identity") +
  # scale_fill_grey(start = 0.2, end = 0.8,na.value = "red") +
  ggtitle("Productos/Categorías MAS comprados")

Productos que mas se vende, cruzados con detalleCompras

Cuales Categoria de productos se compran menos

menosComprados <- tail(join, 20)# Los 20 productos /categorias mas comprados

menosComprados
##                               Producto Frecuencia
## 32932 ffbfa9e143fda4420454d0f4e88a3cd5          1
## 32933 ffbfe460c6f140cdbe4f494be6dd43be          1
## 32934 ffc48c754b5bd736e2887e279d1dec72          1
## 32935 ffc88104d219c1b767d566fd93653dd2          1
## 32936 ffccf0ce5eff1a158891296990107d08          1
## 32937 ffcfaba393e8ef71937c6e8421bc2868          1
## 32938 ffd246249e3225c13f40b5b91dcaa65a          1
## 32939 ffd259a48b9b073c942884d0f3659566          1
## 32940 ffd63ee42a5c8cc5a15a1c8e2aa50011          1
## 32941 ffd7628b0b0b98ebc549e8e4c54a59af          1
## 32942 ffd9ac56db9194a413298faaa03cd176          1
## 32943 ffdde3d63e889c9a9f9ec30d82a4c815          1
## 32944 ffe9468f4d890db80b7231e86931ff37          1
## 32945 ffeb228c521d5464d1f71444da96c446          1
## 32946 fff1059cd247279f3726b7696c66e44e          1
## 32947 fff28f91211774864a1000f918ed00cc          1
## 32948 fff515ea94dbf35d54d256b3e39f0fea          1
## 32949 fff81cc3158d2725c0655ab9ba0f712c          1
## 32950 fff9553ac224cec9d15d49f5a263411f          1
## 32951 fffe9eeff12fcbd74a2f2b007dde0c58          1
##             product_category_name
## 32932      informatica_acessorios
## 32933            eletrodomesticos
## 32934             eletroportateis
## 32935       utilidades_domesticas
## 32936               esporte_lazer
## 32937             casa_construcao
## 32938               esporte_lazer
## 32939     fashion_roupa_masculina
## 32940   agro_industria_e_comercio
## 32941                beleza_saude
## 32942                    pet_shop
## 32943                  brinquedos
## 32944                  brinquedos
## 32945                   telefonia
## 32946               esporte_lazer
## 32947                            
## 32948          relogios_presentes
## 32949                beleza_saude
## 32950 fashion_bolsas_e_acessorios
## 32951                  brinquedos
Prod <- substr(menosComprados$product_category_name,1,6)

ggplot(data=menosComprados, aes(x=Prod, y=Frecuencia, 
                       fill=product_category_name))  + 
  geom_bar(stat="identity") +
  # scale_fill_grey(start = 0.2, end = 0.8,na.value = "red") +
  ggtitle("Productos/Categorías MENOS comprados")