1. Opciones Generales

1.Instalamos y cargamos las librerías necesarias

#Cargar librerías
library(dplyr)
library(skimr)
library(lubridate)
library(tidyr)
library(ggplot2)
library(readxl)
library(rJava)
library(xlsx)

2.Cargamos los datos

df<- read_excel("Base Mineria de datos.xlsx", sheet = "OCt-DIc")
# CAMBIAMOS A TIPO DATE( Fechas ) y a Factor
df<-df%>%mutate(Fecha=as.Date.POSIXct(Fecha),`FECHA ESTADO`=as.Date.POSIXct(`FECHA ESTADO`), `Entrega Por`= as.factor(`Entrega Por`), Fact = as.factor(Fact))
df
## # A tibble: 2,042 x 17
##    CI    Cliente Fecha      Mes     Urg `Entrega Por` `ESTADO ACTUAL`
##    <chr> <chr>   <date>     <chr> <dbl> <fct>         <chr>          
##  1 1713~ <NA>    2019-06-11 Junio    NA 1             DEVOLUCION AL ~
##  2 0102~ <NA>    2019-06-11 Junio    NA 1             DEVOLUCION AL ~
##  3 0104~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
##  4 1715~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
##  5 1718~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
##  6 1708~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
##  7 0917~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
##  8 0401~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
##  9 1310~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
## 10 1600~ <NA>    2019-06-11 Junio    NA 1             POD LIQUIDADO  
## # ... with 2,032 more rows, and 10 more variables: `DETALLE ESTADO` <chr>,
## #   `FECHA ESTADO` <date>, `NRO VISITAS` <dbl>, Éxito <chr>, Provincia <chr>,
## #   Ciudad <chr>, Fact <fct>, Direccion <chr>, `Número 1` <lgl>, `Número
## #   2` <lgl>
# Descartamos ciertas variables
sum(is.na(df$`Número 2`))
## [1] 2042
df<-df%>%select(-c("Número 1",'Número 2'))

\[obj = \begin{cases} 1 & \text{ si se entrego el chip } \\ 0 & \text{ caso contrario} \end{cases}\]

# Creamos la variable objetivo

df<-df%>%mutate(dev=as.factor(ifelse(Éxito=='SIM Entregado',1,0)))

# Modificamos la variable Ciudad
df<-df%>%mutate(Valores = strsplit(Ciudad," - "))


ciudad<-function(){
x<-c()
for(i in 1:length(df$Ciudad)){
  x[i]<-df$Valores[[i]][1]
}
return(x)
}

capitales<-function(){
x<-c()
for(i in 1:length(df$Ciudad)){
  x[i]<-length(df$Valores[[i]])
}
return(x)
}

df<-df%>%mutate(CIUDAD=ciudad(), Capitales = ifelse(capitales()>1,1,0))

3.Análisis inicial

glimpse(df) #Vision General
## Rows: 2,042
## Columns: 19
## $ CI               <chr> "1713234068", "0102164951", "0104413398", "1715351...
## $ Cliente          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ Fecha            <date> 2019-06-11, 2019-06-11, 2019-06-11, 2019-06-11, 2...
## $ Mes              <chr> "Junio", "Junio", "Junio", "Junio", "Junio", "Juni...
## $ Urg              <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ `Entrega Por`    <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ `ESTADO ACTUAL`  <chr> "DEVOLUCION AL SHIPPER", "DEVOLUCION AL SHIPPER", ...
## $ `DETALLE ESTADO` <chr> "Cliente de Viaje/Vacaciones", "No Desea Recibir T...
## $ `FECHA ESTADO`   <date> 2019-06-21, 2019-06-20, 2019-06-19, 2019-06-17, 2...
## $ `NRO VISITAS`    <dbl> 1, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 3, 2,...
## $ Éxito            <chr> "SIM Devuelto", "SIM Devuelto", "SIM Entregado", "...
## $ Provincia        <chr> "PICHINCHA", "AZUAY", "AZUAY", "PICHINCHA", "PICHI...
## $ Ciudad           <chr> "QUITO - QUITO", "CUENCA - CUENCA", "CUENCA - CUEN...
## $ Fact             <fct> 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0,...
## $ Direccion        <chr> "DOMICILIO CALLE JAIME CHIRIBOGA N51-105 AV FLORID...
## $ dev              <fct> 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,...
## $ Valores          <list> [<"QUITO", "QUITO">, <"CUENCA", "CUENCA">, <"CUEN...
## $ CIUDAD           <chr> "QUITO", "CUENCA", "CUENCA", "QUITO", "QUITO", "RI...
## $ Capitales        <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
skim(df) #Summary 
Data summary
Name df
Number of rows 2042
Number of columns 19
_______________________
Column type frequency:
character 10
Date 2
factor 3
list 1
numeric 3
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
CI 0 1.00 9 13 0 1914 0
Cliente 634 0.69 10 67 0 1336 1
Mes 0 1.00 5 10 0 10 0
ESTADO ACTUAL 10 1.00 9 23 0 7 0
DETALLE ESTADO 10 1.00 13 30 0 29 0
Éxito 0 1.00 9 13 0 3 0
Provincia 0 1.00 4 16 0 24 0
Ciudad 5 1.00 4 49 0 107 0
Direccion 30 0.99 14 360 0 1851 1
CIUDAD 5 1.00 4 49 0 107 0

Variable type: Date

skim_variable n_missing complete_rate min max median n_unique
Fecha 0 1 2019-06-11 2020-03-18 2019-11-06 190
FECHA ESTADO 10 1 2019-01-07 2020-12-03 2019-11-14 242

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
Entrega Por 0 1 FALSE 2 1: 1985, 0: 57
Fact 0 1 FALSE 2 0: 1474, 1: 568
dev 0 1 FALSE 2 1: 1391, 0: 651

Variable type: list

skim_variable n_missing complete_rate n_unique min_length max_length
Valores 5 1 107 1 2

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Urg 634 0.69 174.35 50.61 83 132 175 222.25 253 ▅▆▆▆▇
NRO VISITAS 10 1.00 1.51 0.73 0 1 1 2.00 3 ▁▇▁▃▂
Capitales 0 1.00 0.70 0.46 0 0 1 1.00 1 ▃▁▁▁▇
lista<-as.data.frame(skim(df))
knitr::kable(skim(df))# lo que hace kable es dar un formato agradable al resumen
skim_type skim_variable n_missing complete_rate character.min character.max character.empty character.n_unique character.whitespace Date.min Date.max Date.median Date.n_unique factor.ordered factor.n_unique factor.top_counts list.n_unique list.min_length list.max_length numeric.mean numeric.sd numeric.p0 numeric.p25 numeric.p50 numeric.p75 numeric.p100 numeric.hist
character CI 0 1.0000000 9 13 0 1914 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character Cliente 634 0.6895201 10 67 0 1336 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character Mes 0 1.0000000 5 10 0 10 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character ESTADO ACTUAL 10 0.9951028 9 23 0 7 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character DETALLE ESTADO 10 0.9951028 13 30 0 29 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character Éxito 0 1.0000000 9 13 0 3 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character Provincia 0 1.0000000 4 16 0 24 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character Ciudad 5 0.9975514 4 49 0 107 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character Direccion 30 0.9853085 14 360 0 1851 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
character CIUDAD 5 0.9975514 4 49 0 107 0 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Date Fecha 0 1.0000000 NA NA NA NA NA 2019-06-11 2020-03-18 2019-11-06 190 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Date FECHA ESTADO 10 0.9951028 NA NA NA NA NA 2019-01-07 2020-12-03 2019-11-14 242 NA NA NA NA NA NA NA NA NA NA NA NA NA NA
factor Entrega Por 0 1.0000000 NA NA NA NA NA NA NA NA NA FALSE 2 1: 1985, 0: 57 NA NA NA NA NA NA NA NA NA NA NA
factor Fact 0 1.0000000 NA NA NA NA NA NA NA NA NA FALSE 2 0: 1474, 1: 568 NA NA NA NA NA NA NA NA NA NA NA
factor dev 0 1.0000000 NA NA NA NA NA NA NA NA NA FALSE 2 1: 1391, 0: 651 NA NA NA NA NA NA NA NA NA NA NA
list Valores 5 0.9975514 NA NA NA NA NA NA NA NA NA NA NA NA 107 1 2 NA NA NA NA NA NA NA NA
numeric Urg 634 0.6895201 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 174.3458807 50.6132721 83 132 175 222.25 253 ▅▆▆▆▇
numeric NRO VISITAS 10 0.9951028 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 1.5103346 0.7291439 0 1 1 2.00 3 ▁▇▁▃▂
numeric Capitales 0 1.0000000 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 0.6973555 0.4595152 0 0 1 1.00 1 ▃▁▁▁▇

Conclusiones:

4.Datos Faltantes

#Retiramos los faltantes en CIUDAD

df<-df[!is.na(df$CIUDAD),]

#Retiramos los faltantes en Direccion

#df<-df[!is.na(df$Direccion)]

df<-df%>%select(-c("Ciudad",'Valores','DETALLE ESTADO','FECHA ESTADO','Entrega Por','Fact',"Capitales",'Éxito'))

5.Exportamos a Excel

skim(df)
Data summary
Name df
Number of rows 2037
Number of columns 11
_______________________
Column type frequency:
character 7
Date 1
factor 1
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
CI 0 1.00 9 13 0 1909 0
Cliente 634 0.69 10 67 0 1331 1
Mes 0 1.00 5 10 0 10 0
ESTADO ACTUAL 10 1.00 9 23 0 7 0
Provincia 0 1.00 4 16 0 24 0
Direccion 30 0.99 14 360 0 1846 1
CIUDAD 0 1.00 4 38 0 87 0

Variable type: Date

skim_variable n_missing complete_rate min max median n_unique
Fecha 0 1 2019-06-11 2020-03-18 2019-11-06 190

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts
dev 0 1 FALSE 2 1: 1386, 0: 651

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Urg 634 0.69 174.40 50.69 83 131.5 175 223 253 ▅▆▆▆▇
NRO VISITAS 10 1.00 1.51 0.73 0 1.0 1 2 3 ▁▇▁▃▂
write.xlsx(df, file = "Base Retail.xlsx", sheetName = "DATOS", append = TRUE)