A continuación, se presenta la limpieza y manipulación de la base de datos de la empresa socio formadora ‘Pisos Iberia’ con el fin de prepararla para el uso posterior en el diseño de dashboards que brinden información relevante acerca de la compañía.
setwd("C:/Users/esme2/OneDrive - Instituto Tecnologico y de Estudios Superiores de Monterrey/Computadora/TEC/Reto/Pisos Iberia")
library(readxl)
#PisosIberia <- read_xlsx("Pisos_Iberia.xlsx")
#Aquí no tiene caso poner el objeto PisosIberia porque jala exactamente la misma información que el objeto admi, entonces lo podemos borrar.
admi <- read_xlsx("Pisos_Iberia.xlsx",sheet = 'Administracion')
head(admi,10)
## # A tibble: 10 x 3
## Área Encargado Indicador
## <chr> <chr> <chr>
## 1 Finanzas Felipe Ventas
## 2 Finanzas Ana Compras
## 3 Finanzas Ana % margen de compras
## 4 Finanzas Ana Gastos totales
## 5 Finanzas Ana % margen de gastos totales
## 6 Finanzas Ana Gastos de venta
## 7 Finanzas Ana Gastos Operativos
## 8 Finanzas Ana Gastos administrativos
## 9 Finanzas Ana Gastos financieros
## 10 Finanzas Ana Monto de utilidad bruta (Ventas-compras) 1
metas <- read_xlsx("Pisos_Iberia.xlsx",sheet = 'Metas')
## New names:
## * `` -> ...57
## * `` -> ...58
head(metas,10)
## # A tibble: 10 x 58
## Metas Ventas Compras `% margen de compras` `Gastos totales`
## <dttm> <dbl> <dbl> <dbl> <dbl>
## 1 2021-01-01 00:00:00 12624375. 5222907. 0.414 2746837.
## 2 2021-02-01 00:00:00 11738737. 4856504. 0.414 2554137.
## 3 2021-03-01 00:00:00 11195317. 4631682. 0.414 2435899.
## 4 2021-04-01 00:00:00 8898685. 3681529. 0.414 1936193.
## 5 2021-05-01 00:00:00 11626375. 4810018. 0.414 2529690.
## 6 2021-06-01 00:00:00 12315535. 5095135. 0.414 2679638.
## 7 2021-07-01 00:00:00 12011512. 4969355. 0.414 2613489.
## 8 2021-08-01 00:00:00 11157585. 4616072. 0.414 2427689.
## 9 2021-09-01 00:00:00 14099004. 5832984. 0.414 3067689.
## 10 2021-10-01 00:00:00 12821032. 5304267. 0.414 2789626.
## # ... with 53 more variables: `% margen de gastos totales` <dbl>,
## # `Gastos de venta` <dbl>, `Gastos Operativos` <dbl>,
## # `Gastos administrativos` <dbl>, `Gastos financieros` <dbl>,
## # `Monto de utilidad bruta (Ventas-compras) 1` <dbl>,
## # `Margen utilidad bruta 1` <dbl>,
## # `Monto de utilidad bruta de ventas (venta - costo de venta) 2` <dbl>,
## # `Margen utilidad bruta 2` <dbl>, ...
resultados <- read_xlsx("Pisos_Iberia.xlsx",sheet = 'Resultados',range = "A1:BD15")
head(resultados,10)
## # A tibble: 10 x 56
## Metas Ventas Compras `% margen de c~` `Gastos totales` `% margen de g~`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 R1_2021 8925122. 3.82e6 0.428 3059000. 0.343
## 2 R2_2021 10418193. 4.31e6 0.414 2558465. 0.246
## 3 R3_2021 12767696 4.81e6 0.376 2658190. 0.208
## 4 R4_2021 10743645. 5.81e6 0.541 2792910. 0.260
## 5 R5_2021 12502098. 7.50e6 0.600 2648671. 0.212
## 6 R6_2021 11524306. 8.73e6 0.758 2888719. 0.251
## 7 R7_2021 13241285. 1.00e7 0.757 2742891. 0.207
## 8 R8_2021 14731724. 5.46e6 0.371 2367353. 0.161
## 9 R9_2021 15148931. 7.28e6 0.480 1404768. 0.0927
## 10 R10_2021 15573441. 1.01e7 0.646 3056297. 0.196
## # ... with 50 more variables: `Gastos de venta` <dbl>,
## # `Gastos Operativos` <dbl>, `Gastos administrativos` <dbl>,
## # `Gastos financieros` <dbl>,
## # `Monto de utilidad bruta (Ventas-compras) 1` <dbl>,
## # `Margen utilidad bruta 1` <dbl>,
## # `Monto de utilidad bruta de ventas (venta - costo de venta) 2` <dbl>,
## # `Margen utilidad bruta 2` <dbl>, ...
Las variables de interés dentro del reto son: Finanzas % margen de compras (ventas y compras) % total cartera (total de cartera) Cartera Vigente % cartera vigente Cartera Vencida % cartera vencida Cartera díficil e incobrable % cartera incobrable Compras Meses de inventario promedio
Por lo tanto, se eliminan las que no son de interés
#Metas
metas$`Gastos totales`<- NULL
metas$`Gastos de venta` <- NULL
metas$`Gastos Operativos` <- NULL
metas$`Gastos administrativos`<- NULL
metas$`Gastos financieros` <- NULL
metas$`Monto de utilidad bruta (Ventas-compras) 1` <- NULL
metas$`Margen utilidad bruta 1`<- NULL
metas$`Monto de utilidad bruta de ventas (venta - costo de venta) 2`<-NULL
metas$`Margen utilidad bruta 2`<-NULL
metas$`Monto de utilidad neta antes de impuestos 1`<-NULL
metas$`Margen neto antes de impuestos 1`<-NULL
metas$`Monto de utilidad neta antes de impuestos 2`<-NULL
metas$`Margen neto antes de impuestos 2`<-NULL
metas$Impuestos<-NULL
metas$`Margen de impuestos`<-NULL
metas$`Monto de utilidad neta después de impuestos`<-NULL
metas$`Margen de utilidad neta después de impuestos 1`<-NULL
metas$`Monto de utilidad neta sobre ut. por producto 2`<-NULL
metas$`Margen de utilidad neta después de impuestos 2`<-NULL
metas$`Cuentas por pagar ( sólo proveedores)`<-NULL
metas$`Margen de cuentas por pagar`<-NULL
metas$`Valor del inventario`<-NULL
metas$`Nivel de servicio de proveedores`<-NULL
metas$`Tiempo promedio de surtimiento de material`<-NULL
metas$`Tasa de defectos del proveedor`<-NULL
metas$`Prospectos proyectos de calidad CC`<-NULL
metas$`Actividad comercial (Citas efectivas y de calidad / llamadas / eventos)`<-NULL
metas$`Cierre de ventas (Cuentas Clave)`<-NULL
metas$`Clientes con venta`<-NULL
metas$`Satisfacción del cliente`<-NULL
metas$`Nivel de servicio interno`<-NULL
metas$`Costo de distribución`<-NULL
metas$`Margen de costo de distribución`<-NULL
metas$`Eficiencia de distribución`<-NULL
metas$`Match auditorías de inventarios`<-NULL
metas$`5´s`<-NULL
metas$`% margen de gastos totales`<-NULL
metas$Cobranza<-NULL
metas$`% Postventa de (Cuentas clave)`<-NULL
metas$`% solución de Incidencias comerciales`<-NULL
metas$`% apego al plan de entregas`<-NULL
metas$`# reportes de reclamo clientes `<-NULL
metas$`% solución de incidencias operativas`<-NULL
metas$...57<-NULL
metas$...58<-NULL
metas$`Asistencia y puntualidad e ventas`<-NULL
metas$`Cartera díficil e incobrable`<-NULL
#Resultados
resultados$`Gastos totales`<- NULL
resultados$`Gastos de venta` <- NULL
resultados$`Gastos Operativos` <- NULL
resultados$`Gastos administrativos`<- NULL
resultados$`Gastos financieros` <- NULL
resultados$`Monto de utilidad bruta (Ventas-compras) 1` <- NULL
resultados$`Margen utilidad bruta 1`<- NULL
resultados$`Monto de utilidad bruta de ventas (venta - costo de venta) 2`<-NULL
resultados$`Margen utilidad bruta 2`<-NULL
resultados$`Monto de utilidad neta antes de impuestos 1`<-NULL
resultados$`Margen neto antes de impuestos 1`<-NULL
resultados$`Monto de utilidad neta antes de impuestos 2`<-NULL
resultados$`Margen neto antes de impuestos 2`<-NULL
resultados$Impuestos<-NULL
resultados$`Margen de impuestos`<-NULL
resultados$`Monto de utilidad neta después de impuestos`<-NULL
resultados$`Margen de utilidad neta después de impuestos 1`<-NULL
resultados$`Monto de utilidad neta sobre ut. por producto 2`<-NULL
resultados$`Margen de utilidad neta después de impuestos 2`<-NULL
resultados$`Cuentas por pagar ( sólo proveedores)`<-NULL
resultados$`Margen de cuentas por pagar`<-NULL
resultados$`Valor del inventario`<-NULL
resultados$`Nivel de servicio de proveedores`<-NULL
resultados$`Tiempo promedio de surtimiento de material`<-NULL
resultados$`Tasa de defectos del proveedor`<-NULL
resultados$`Prospectos proyectos de calidad CC`<-NULL
resultados$`Actividad comercial (Citas efectivas y de calidad / llamadas / eventos)`<-NULL
resultados$`Cierre de ventas (Cuentas Clave)`<-NULL
resultados$`Clientes con venta`<-NULL
resultados$`Satisfacción del cliente`<-NULL
resultados$`Nivel de servicio interno`<-NULL
resultados$`Costo de distribución`<-NULL
resultados$`Margen de costo de distribución`<-NULL
resultados$`Eficiencia de distribución`<-NULL
resultados$`Match auditorías de inventarios`<-NULL
resultados$`5´s`<-NULL
resultados$`% margen de gastos totales`<-NULL
resultados$Cobranza<-NULL
resultados$`% Postventa de (Cuentas clave)`<-NULL
resultados$`% solución de Incidencias comerciales`<-NULL
resultados$`% apego al plan de entregas`<-NULL
resultados$`# reportes de reclamo clientes `<-NULL
resultados$`% solución de incidencias operativas`<-NULL
resultados$...57<-NULL
resultados$...58<-NULL
Veremos cuantos datos nulos hay en cada variable de las pestañas ‘metas’ y ‘resultados’
#Metas
colSums(is.na(metas))
## Metas Ventas
## 0 0
## Compras % margen de compras
## 0 0
## Total cartera % total cartera
## 0 0
## Cartera Vigente % cartera vigente
## 12 12
## Cartera Vencida % cartera vencida
## 12 12
## % cartera incobrable Meses de inventario promedio
## 13 16
#Resultados
colSums(is.na(resultados))
## Metas Ventas
## 0 0
## Compras % margen de compras
## 0 0
## Total cartera % total cartera
## 0 0
## Cartera Vigente % cartera vigente
## 12 12
## Cartera Vencida % cartera vencida
## 12 12
## Cartera díficil e incobrable % cartera incobrable
## 13 13
## Meses de inventario promedio
## 7
#Metas
library(VIM)
## Loading required package: colorspace
## Loading required package: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
##
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
##
## sleep
aggr(metas,numbers=T,sortVar=T)
##
## Variables sorted by number of missings:
## Variable Count
## Meses de inventario promedio 0.6956522
## % cartera incobrable 0.5652174
## Cartera Vigente 0.5217391
## % cartera vigente 0.5217391
## Cartera Vencida 0.5217391
## % cartera vencida 0.5217391
## Metas 0.0000000
## Ventas 0.0000000
## Compras 0.0000000
## % margen de compras 0.0000000
## Total cartera 0.0000000
## % total cartera 0.0000000
#Resultados
library(VIM)
aggr(resultados,numbers=T,sortVar=T)
##
## Variables sorted by number of missings:
## Variable Count
## Cartera díficil e incobrable 0.9285714
## % cartera incobrable 0.9285714
## Cartera Vigente 0.8571429
## % cartera vigente 0.8571429
## Cartera Vencida 0.8571429
## % cartera vencida 0.8571429
## Meses de inventario promedio 0.5000000
## Metas 0.0000000
## Ventas 0.0000000
## Compras 0.0000000
## % margen de compras 0.0000000
## Total cartera 0.0000000
## % total cartera 0.0000000
Veremos si los tipo de datos asignados a cada variable son correctos
str(metas)
## tibble [23 x 12] (S3: tbl_df/tbl/data.frame)
## $ Metas : POSIXct[1:23], format: "2021-01-01" "2021-02-01" ...
## $ Ventas : num [1:23] 12624375 11738737 11195317 8898685 11626375 ...
## $ Compras : num [1:23] 5222907 4856504 4631682 3681529 4810018 ...
## $ % margen de compras : num [1:23] 0.414 0.414 0.414 0.414 0.414 ...
## $ Total cartera : num [1:23] 10293956 12016017 14725861 12391384 14419529 ...
## $ % total cartera : num [1:23] 1.15 1.15 1.15 1.15 1.15 ...
## $ Cartera Vigente : num [1:23] NA NA NA NA NA NA NA NA NA NA ...
## $ % cartera vigente : num [1:23] NA NA NA NA NA NA NA NA NA NA ...
## $ Cartera Vencida : num [1:23] NA NA NA NA NA NA NA NA NA NA ...
## $ % cartera vencida : num [1:23] NA NA NA NA NA NA NA NA NA NA ...
## $ % cartera incobrable : num [1:23] NA NA NA NA NA NA NA NA NA NA ...
## $ Meses de inventario promedio: num [1:23] NA NA NA NA NA NA NA 6 6 5 ...
str(resultados)
## tibble [14 x 13] (S3: tbl_df/tbl/data.frame)
## $ Metas : chr [1:14] "R1_2021" "R2_2021" "R3_2021" "R4_2021" ...
## $ Ventas : num [1:14] 8925122 10418193 12767696 10743645 12502098 ...
## $ Compras : num [1:14] 3815741 4308280 4805392 5812057 7501134 ...
## $ % margen de compras : num [1:14] 0.428 0.414 0.376 0.541 0.6 ...
## $ Total cartera : num [1:14] 11319151 12501935 15933759 13590018 15112737 ...
## $ % total cartera : num [1:14] 1.27 1.2 1.25 1.26 1.21 ...
## $ Cartera Vigente : num [1:14] NA NA NA NA NA NA NA NA NA NA ...
## $ % cartera vigente : num [1:14] NA NA NA NA NA NA NA NA NA NA ...
## $ Cartera Vencida : num [1:14] NA NA NA NA NA NA NA NA NA NA ...
## $ % cartera vencida : num [1:14] NA NA NA NA NA NA NA NA NA NA ...
## $ Cartera díficil e incobrable: num [1:14] NA NA NA NA NA NA NA NA NA NA ...
## $ % cartera incobrable : num [1:14] NA NA NA NA NA NA NA NA NA NA ...
## $ Meses de inventario promedio: num [1:14] NA NA NA NA NA ...
En la pestaña de resultados, la variable ‘$ Ventas’ está categorizada como chr, pero en realidad es num, por lo que la modificaremos para que el tipo de dato corresponda a la variable.
summary(as.numeric(resultados$Ventas))
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8925122 11768754 13481454 13631412 15054960 19244502
as.numeric(as.character(resultados$Ventas))
## [1] 8925122 10418193 12767696 10743645 12502098 11524306 13241285 14731724
## [9] 15148931 15573441 19244502 17524152 14773046 13721624
require(readr)
## Loading required package: readr
VentasNum<-readr::parse_number(as.character(resultados$Ventas))
summary(VentasNum)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8925122 11768754 13481454 13631412 15054960 19244502
class(VentasNum)
## [1] "numeric"
class(resultados$Ventas)
## [1] "numeric"
resultados$Ventas<-VentasNum
Comprobamos que el problema se haya eliminado.
str(resultados$Ventas)
## num [1:14] 8925122 10418193 12767696 10743645 12502098 ...
View(metas)
View(resultados)
Corremos un resumen del objeto metas para explorar sus variables y su estadística descriptiva.
#Resumen Metas
summary(metas)
## Metas Ventas Compras
## Min. :2021-01-01 00:00:00 Min. : 8898685 Min. : 3681529
## 1st Qu.:2021-06-16 00:00:00 1st Qu.:12163524 1st Qu.: 5032245
## Median :2021-12-01 00:00:00 Median :14994856 Median : 6990261
## Mean :2021-11-30 18:46:57 Mean :14915417 Mean : 7254698
## 3rd Qu.:2022-05-16 12:00:00 3rd Qu.:16869752 3rd Qu.: 8942748
## Max. :2022-11-01 00:00:00 Max. :22618462 Max. :12162188
##
## % margen de compras Total cartera % total cartera Cartera Vigente
## Min. :0.4137 Min. :10293956 Min. :0.9514 Min. : 5387374
## 1st Qu.:0.4137 1st Qu.:14998972 1st Qu.:1.0057 1st Qu.: 7739307
## Median :0.4137 Median :17113956 Median :1.1534 Median : 8698825
## Mean :0.4730 Mean :17340833 Mean :1.0828 Mean : 9227172
## 3rd Qu.:0.5377 3rd Qu.:19803911 3rd Qu.:1.1534 3rd Qu.:10493144
## Max. :0.5377 Max. :24592617 Max. :1.1534 Max. :13543683
## NA's :12
## % cartera vigente Cartera Vencida % cartera vencida % cartera incobrable
## Min. :0.3354 Min. : 8422292 Min. :0.4250 Min. :0.2052
## 1st Qu.:0.4625 1st Qu.: 9299659 1st Qu.:0.4900 1st Qu.:0.2052
## Median :0.4807 Median :10072350 Median :0.5193 Median :0.2052
## Mean :0.4722 Mean : 9971437 Mean :0.5256 Mean :0.2052
## 3rd Qu.:0.5100 3rd Qu.:10485366 3rd Qu.:0.5375 3rd Qu.:0.2052
## Max. :0.5750 Max. :11406421 Max. :0.6585 Max. :0.2052
## NA's :12 NA's :12 NA's :12 NA's :13
## Meses de inventario promedio
## Min. :5.000
## 1st Qu.:5.000
## Median :5.000
## Mean :5.286
## 3rd Qu.:5.500
## Max. :6.000
## NA's :16
Dado que la cantidad de valores faltantes es muy grande, se realizará una imputación en los datos utilizando su media histórica como parámetro de remplazo para los datos nulos.
metas$Ventas[is.na(metas$Ventas)]<-14915417
metas$Compras[is.na(metas$Compras)]<-7254698
metas$`% margen de compras`[is.na(metas$`% margen de compras`)]<-0.4730
metas$`Total cartera`[is.na(metas$`Total cartera`)]<-17340833
metas$`% total cartera`[is.na(metas$`% total cartera`)]<-1.0828
metas$`Cartera Vigente`[is.na(metas$`Cartera Vigente`)]<-9227172
metas$`% cartera vigente`[is.na(metas$`% cartera vigente`)]<-0.4722
metas$`Cartera Vencida`[is.na(metas$`Cartera Vencida`)]<-9971437
metas$`% cartera vencida`[is.na(metas$`% cartera vencida`)]<-0.5256
metas$`% cartera incobrable`[is.na(metas$`% cartera incobrable`)]<-0.2052
metas$`Meses de inventario promedio`[is.na(metas$`Meses de inventario promedio`)]<-5.286
#Resumen Resultados
summary(resultados)
## Metas Ventas Compras % margen de compras
## Length:14 Min. : 8925122 Min. : 3815741 Min. :0.3708
## Class :character 1st Qu.:11768754 1st Qu.: 5549960 1st Qu.:0.4407
## Mode :character Median :13481454 Median : 8115627 Median :0.5590
## Mean :13631412 Mean : 7671427 Mean :0.5597
## 3rd Qu.:15054960 3rd Qu.: 9867093 3rd Qu.:0.6438
## Max. :19244502 Max. :11106220 Max. :0.7575
##
## Total cartera % total cartera Cartera Vigente % cartera vigente
## Min. :11319151 Min. :0.9119 Min. :5117224 Min. :0.3092
## 1st Qu.:14528729 1st Qu.:1.0944 1st Qu.:5161918 1st Qu.:0.3148
## Median :15956630 Median :1.1943 Median :5206613 Median :0.3203
## Mean :15437797 Mean :1.1520 Mean :5206613 Mean :0.3203
## 3rd Qu.:16432300 3rd Qu.:1.2351 3rd Qu.:5251308 3rd Qu.:0.3259
## Max. :18400319 Max. :1.2682 Max. :5296002 Max. :0.3314
## NA's :12 NA's :12
## Cartera Vencida % cartera vencida Cartera díficil e incobrable
## Min. :10683500 Min. :0.6686 Min. :3395286
## 1st Qu.:10870442 1st Qu.:0.6741 1st Qu.:3395286
## Median :11057385 Median :0.6797 Median :3395286
## Mean :11057385 Mean :0.6797 Mean :3395286
## 3rd Qu.:11244328 3rd Qu.:0.6852 3rd Qu.:3395286
## Max. :11431270 Max. :0.6908 Max. :3395286
## NA's :12 NA's :12 NA's :13
## % cartera incobrable Meses de inventario promedio
## Min. :0.2052 Min. :5.236
## 1st Qu.:0.2052 1st Qu.:5.431
## Median :0.2052 Median :6.250
## Mean :0.2052 Mean :6.723
## 3rd Qu.:0.2052 3rd Qu.:8.133
## Max. :0.2052 Max. :8.450
## NA's :13 NA's :7
resultados$Ventas[is.na(resultados$Ventas)]<-12722651
resultados$Compras[is.na(resultados$Compras)]<-8115627
resultados$`% margen de compras`[is.na(resultados$`% margen de compras`)]<-0.5597
resultados$`Total cartera`[is.na(resultados$`Total cartera`)]<-15437797
resultados$`% total cartera`[is.na(resultados$`% total cartera`)]<-1.1520
resultados$`Cartera Vigente`[is.na(resultados$`Cartera Vigente`)]<-5206613
resultados$`% cartera vigente`[is.na(resultados$`% cartera vigente`)]<-0.3203
resultados$`Cartera Vencida`[is.na(resultados$`Cartera Vencida`)]<-11057385
resultados$`% cartera vencida`[is.na(resultados$`% cartera vencida`)]<-0.6797
resultados$`Cartera díficil e incobrable`[is.na(resultados$`Cartera díficil e incobrable`)]<-3395286
resultados$`% cartera incobrable`[is.na(resultados$`% cartera incobrable`)]<-0.2052
resultados$`Meses de inventario promedio`[is.na(resultados$`Meses de inventario promedio`)]<-6.723
Revisamos que ya no existan valores nulos en el objeto metas.
#Metas
colSums(is.na(metas))
## Metas Ventas
## 0 0
## Compras % margen de compras
## 0 0
## Total cartera % total cartera
## 0 0
## Cartera Vigente % cartera vigente
## 0 0
## Cartera Vencida % cartera vencida
## 0 0
## % cartera incobrable Meses de inventario promedio
## 0 0
Del mismo modo, revisamos que no existan valores nulos en el objeto resultados.
#Resultados
colSums(is.na(resultados))
## Metas Ventas
## 0 0
## Compras % margen de compras
## 0 0
## Total cartera % total cartera
## 0 0
## Cartera Vigente % cartera vigente
## 0 0
## Cartera Vencida % cartera vencida
## 0 0
## Cartera díficil e incobrable % cartera incobrable
## 0 0
## Meses de inventario promedio
## 0
###Ahora, presentando el resultado de la imputación de forma visual: Observamos que ya no existen valores nulos o ausentes en las variables de interés, ya que todas las barras de la gráfica se encuentran en color azul. Lo que nos indica que el proceso de imputación de las variables, fue todo un éxito.
aggr(metas,numbers=T,sortVar=T)
##
## Variables sorted by number of missings:
## Variable Count
## Metas 0
## Ventas 0
## Compras 0
## % margen de compras 0
## Total cartera 0
## % total cartera 0
## Cartera Vigente 0
## % cartera vigente 0
## Cartera Vencida 0
## % cartera vencida 0
## % cartera incobrable 0
## Meses de inventario promedio 0
aggr(resultados,numbers=T,sortVar=T)
##
## Variables sorted by number of missings:
## Variable Count
## Metas 0
## Ventas 0
## Compras 0
## % margen de compras 0
## Total cartera 0
## % total cartera 0
## Cartera Vigente 0
## % cartera vigente 0
## Cartera Vencida 0
## % cartera vencida 0
## Cartera díficil e incobrable 0
## % cartera incobrable 0
## Meses de inventario promedio 0
Finalmente escribimos dos nuevos archivos con las bases de datos limpias y listas para su procesamiento.
write.csv(metas,"metas_clean.csv")
write.csv(resultados, "resultados_clean.csv")