Advertisement
monchimon00

9.2.3DataBaseUpdate

Apr 24th, 2024 (edited)
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 15.16 KB | Source Code | 0 0
  1. # Carga base de datos del excel descargado de Vortem
  2.   excel_file_basededatos <- paste0(Documents_path,"\\Integration\\DATA\\MODELO\\BaseDeDatosModelo.xlsx")
  3.   wb <- loadWorkbook(excel_file_basededatos)
  4.   sheet_basededatos <- 1
  5.   col_types <- c("text", "text", "date",
  6.                  "text", "numeric", "date", "date",
  7.                  "numeric", "numeric", "numeric",
  8.                  "numeric", "text", "text", "numeric",
  9.                  "text", "text", "date", "numeric",
  10.                  "numeric", "date", "text", "text",
  11.                  "text", "text", "date", "numeric",
  12.                  "numeric", "text")
  13. #Base de Datos Modelo
  14.  
  15. base_datos1 <- read_excel(excel_file_basededatos, sheet = "Sheet1", col_types = col_types)
  16. base_datos <- base_datos1[,c(1,2,3,4,5,6,7,8,9,10,11,12,22)]
  17.  
  18. base_datosvar4 <- base_datos1[,c(1,14,12)]
  19. base_datosvar4 <- base_datosvar4 %>%
  20.     rename(
  21.       `Numero.de.Contrato` = `Numero de Contrato`,
  22.       `Saldo.para.Liquidar` = `Saldo para Liquidar`,
  23.       `State` = `State`
  24.     )
  25.  
  26.  
  27. #Base de Datos con Bajas de Empleados
  28.   excel_file_bajas <- paste0(Documents_path,"\\Integration\\DATA\\MODELO\\FlexiCredit - BajasEmpleados.xlsx")
  29.   wb2 <- loadWorkbook(excel_file_bajas)
  30.   sheet_bajas <- 7
  31.   base_bajas <- read.xlsx(excel_file_bajas, sheet = sheet_bajas, rows = 207:200000, cols = 1:30)
  32. base_datos2 <- base_datos
  33. columnames <- c("Numero_de_Contrato", "Periodicidad", "Fecha_de_nacimiento", "Sexo", "Pago_Periodico", "Fecha_de_Ingreso", "Fecha_de_Desembolso", "Total_de_Gastos", "Total_de_Ingresos", "Financiamiento", "Numero_de_Periodos", "State", "Empresa_Pagadora")  
  34.  
  35. names(base_datos2) <- columnames
  36. existing_lengths <- sapply(base_datos2, length)
  37.  
  38. # Crear nueva columna edad, inicilizada con valores NA de forma intencionada.
  39. Edad <- rep(NA, existing_lengths[1])  
  40.  
  41. # Crear nueva columna antiguedad, inicilizada con valores NA de forma intencionada.
  42. Antiguedad <- rep(NA, existing_lengths[1])  
  43.  
  44. # Crear nueva columna impago, inicilizada con valores NA de forma intencionada.
  45. Impago <- rep(NA, existing_lengths[1])
  46.  
  47. # Crear nueva columna PeriodicadDos, inicilizada con valores NA de forma intencionada.
  48. PeriodicidadDos <- rep(NA, existing_lengths[1])
  49.  
  50. # Crear nueva columna DTI, inicilizada con valores NA de forma intencionada.
  51. DTI <- rep(NA, existing_lengths[1])
  52. # Organizar las columnas para que esten todas incorporadas en la base de datos.
  53. base_datos_modified <- cbind(base_datos2[, 1:2], Edad, base_datos2[, 3:5], Antiguedad, base_datos2[, 6:length(base_datos2)], Impago, PeriodicidadDos, DTI)
  54. # Se establece un indice que determina en que filas de la base de datos no hay informacion en la variable Fecha_de_nacimiento o bien en Fecha_de_Ingreso, en otras palabras determina cuales contratos son incalculables en la base de datos.  
  55. index <- which(is.na(base_datos_modified$Fecha_de_nacimiento) | is.na(base_datos_modified$Fecha_de_Ingreso))
  56.  
  57. index <- which(is.na(base_datos_modified$Fecha_de_Ingreso))
  58. #Formato de fecha
  59. date_string <- base_datos_modified$Fecha_de_nacimiento
  60. date_string <- gsub(" UTC", "", date_string)
  61.  
  62. date_string2 <- base_datos_modified$Fecha_de_Ingreso
  63. date_string2 <- gsub(" UTC", "", date_string2)
  64.  
  65. date_string3 <- base_datos_modified$Fecha_de_Desembolso
  66. date_string3 <- gsub(" UTC", "", date_string3)
  67. base_datos_modified$Fecha_de_nacimiento <- as.Date(date_string)
  68.  
  69. base_datos_modified$Fecha_de_Ingreso <- as.Date(date_string2)
  70.  
  71. base_datos_modified$Fecha_de_Desembolso <- as.Date(date_string3)
  72. # Fill new columns calculations
  73. date_diff <- as.numeric(base_datos_modified$Fecha_de_Desembolso - base_datos_modified$Fecha_de_nacimiento)
  74. date_diff <- date_diff / 365.25
  75.  
  76. date_diff2 <- as.numeric(base_datos_modified$Fecha_de_Desembolso - base_datos_modified$Fecha_de_Ingreso)
  77. date_diff2 <- date_diff2 / 365.25
  78.  
  79. base_datos_modified$Edad <- date_diff
  80. base_datos_modified$Antiguedad <- date_diff2
  81.  
  82.   for (i in 1:nrow(base_datos_modified)) {
  83.     if (base_datos_modified$Periodicidad[i] == "Semanal") {
  84.       base_datos_modified$PeriodicidadDos[i] <- base_datos_modified$Numero_de_Periodos[i] / 360 * 7
  85.     } else if (base_datos_modified$Periodicidad[i] == "Catorcenal") {
  86.       base_datos_modified$PeriodicidadDos[i] <- base_datos_modified$Numero_de_Periodos[i] / 360 * 14
  87.     } else if (base_datos_modified$Periodicidad[i] == "Quincenal") {
  88.       base_datos_modified$PeriodicidadDos[i] <- base_datos_modified$Numero_de_Periodos[i] / 360 * 15
  89.     } else if (base_datos_modified$Periodicidad[i] == "Mensual") {
  90.       base_datos_modified$PeriodicidadDos[i] <- base_datos_modified$Numero_de_Periodos[i] / 360 * 30
  91.      
  92.     }
  93.   }
  94.  
  95. base_datos_modified$DTI <- base_datos_modified$Total_de_Gastos/base_datos_modified$Total_de_Ingresos
  96. colabuscar <- colnames(base_bajas)[2]
  97. prueba <- (base_bajas[[colabuscar]])
  98. prueba <- prueba[grepl("\\d", prueba)]
  99.  
  100. base_datos_modified$Impago <- ifelse(base_datos_modified$Numero_de_Contrato %in% prueba, 1, 0)
  101.  
  102. base_datos_modificable2 <- base_datos_modified #rbind(base_modificable, base_datos_modified)
  103.  
  104. # Filter for rows containing "Activos" or "Terminados"
  105. base_datos_modificable2 <- base_datos_modificable2[base_datos_modificable2$State %in% c("Activo", "Terminado"), ]
  106.  
  107. #If state = 1 Terminado
  108. base_datos_modificable2$State <- ifelse(base_datos_modificable2$Impago == 1, "Terminado", base_datos_modificable2$State)
  109.  
  110.  
  111.  
  112. indexna <- which(is.na(base_datosvar4$Saldo.para.Liquidar))
  113. base_datosvar5 <- base_datosvar4[-indexna,]
  114. base_datosvar6 <- base_datosvar5[base_datosvar5$Saldo.para.Liquidar <= 0, ]
  115. contratos_menoracero <- base_datosvar6[["Numero.de.Contrato"]]
  116.  
  117.  
  118.  
  119.   # Num Saldo <= 0
  120. base_datos_modificable2$State <- ifelse(base_datos_modificable2$Numero_de_Contrato %in% contratos_menoracero, "Terminado", base_datos_modificable2$State)
  121.   # Identify rows where Empresa_Pagadora matches certain values and replace them
  122.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("ALLENDE VALLE DEL NORTE SA DE CV")
  123.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Allende"
  124.  
  125.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("ARFINSA SA DE CV")
  126.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Arfinsa"
  127.  
  128.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("BRITE LITE DE MEXICO SA DE CV")
  129.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Britelite"
  130.  
  131.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("BURO JURIDICO INTEGRAL DE COBRANZA SC")
  132.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Buro Juridico"
  133.  
  134.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("PRODUCTOS DE CALIZA SA DE CV")
  135.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Caliza"
  136.  
  137.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("CARMEN PATRICIA SAENZ TREVIÑO")
  138.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Carmen Patricia Saenz"
  139.  
  140.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("CARNES SAN MIGUEL DE SALTILLO SA DE CV")
  141.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Carnes San Miguel"
  142.  
  143.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("COMEDORES Y BANQUETES SA DE CV", "Comedores Y Banquetes")
  144.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Comedores Y Banquetes"
  145.  
  146.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("DENSO MEXICO SA DE CV")
  147.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Denso"
  148.  
  149.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("DOGA CNC MAQUINADOS SA DE CV")
  150.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Doga"
  151.  
  152.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("EDER ALEJANDRO TORRES PEREZ")
  153.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Eder Alejandro Torres"
  154.  
  155.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("ELOISA YAMILET PEREZ DELGADILLO")
  156.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Eloisa Yamilet"
  157.  
  158.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("EDIFIKA MANTENIMIENTOS PLAZAS Y PARQUES SA DE CV")
  159.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Edifika"
  160.  
  161.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("FLEXICREDIT SA DE CV")
  162.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "FlexiCredit"
  163.  
  164.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("GRANIX SA DE CV")
  165.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Granix"
  166.  
  167.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("INTERCONSTRUCTORA SA DE CV")
  168.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Interconstructora"
  169.  
  170.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("LADRILLERA MECANIZADA, SA DE CV")
  171.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Ladrillera"
  172.  
  173.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("PRODUCTOS LA TRADICIONAL SA DE CV")
  174.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "La Tradicional"
  175.  
  176.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MAQUINARIA Y FLETES SA DE CV")
  177.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Maquinaria Y Fletes"
  178.  
  179.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MARIA DE LA LUZ FIERROS GALLEGOS")
  180.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Maria De La Luz Fierros"
  181.  
  182.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MAURICIO ORDOÑEZ GARZA")
  183.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Mauricio Ordonez"
  184.  
  185.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MAXIWELD SA DE CV")
  186.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Maxiweld"
  187.  
  188.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MIGUEL DANIEL CHAVARRIA ALVAREZ")
  189.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Miguel Daniel Chavarria"
  190.  
  191.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MONDELEZ MEXICO, SA DE RL DE CV")
  192.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Mondelez"
  193.  
  194.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("MUEBLES KRILL SA DE CV")
  195.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Muebles Krill"
  196.  
  197.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("NATIONAL UNITY SA DE CV")
  198.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "National Unity"
  199.  
  200.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("PLANTASFALTOS SA DE CV")
  201.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Plantasfaltos"
  202.  
  203.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("CORPORACION TATSUMI DE MEXICO SA DE CV")
  204.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Tatsumi"
  205.  
  206.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("LOGISTICA Y SOLUCIONES ROAN SC")
  207.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Roan"
  208.  
  209.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("SERVICIO INTEGRAL DE SEGURIDAD PRIVADA MG SA DE CV")
  210.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Seguridad MG"
  211.  
  212.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("SEGURIDAD PRIVADA INTEGRAL PISCIS SA DE CV")
  213.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Seguridad Piscis"
  214.  
  215.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("SCORE EVENTOS SA DE CV")
  216.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Score"
  217.  
  218.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("TALENTO EJECUTIVO SA DE CV")
  219.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Talento Ejecutivo"
  220.  
  221.   replace_indices <- base_datos_modificable2$Empresa_Pagadora %in% c("COMERCIALIZADORA TRENT SA DE CV")
  222.   base_datos_modificable2$Empresa_Pagadora[replace_indices] <- "Trent"
  223.   base_datos_modificable_modelo <- base_datos_modificable2[base_datos_modificable2$State %in% "Terminado", ]
  224.   #sort(unique(base_datos_modificable_modelo$Empresa_Pagadora))
  225.  
  226.   replace_indices <- base_datos_modificable_modelo$Empresa_Pagadora %in% c("Arfinsa", "Britelite", "National Unity", "Talento Ejecutivo")
  227.   base_datos_modificable_modelo$Empresa_Pagadora[replace_indices] <- "Accionistas"
  228.  
  229.   replace_indices <- base_datos_modificable_modelo$Empresa_Pagadora %in% c("Caliza", "Granix", "Interconstructora", "Maquinaria y Fletes", "Plantasfaltos")
  230.   base_datos_modificable_modelo$Empresa_Pagadora[replace_indices] <- "MINCO"
  231.  
  232.   replace_indices <- base_datos_modificable_modelo$Empresa_Pagadora %in% c("Comedores y Banquetes", "Carnes San Miguel")
  233.   base_datos_modificable_modelo$Empresa_Pagadora[replace_indices] <- "Otros"
  234.  
  235.   empresasmodelo <- c("Accionistas", "Denso", "La Tradicional", "MINCO", "Muebles Krill", "Roan", "Seguridad MG", "Otros")
  236.   base_datos_modificable_modelo_true <- base_datos_modificable_modelo[base_datos_modificable_modelo$Empresa_Pagadora %in% empresasmodelo, ]
  237. base_datos_modificable_modelo_true <- base_datos_modificable_modelo_true %>%
  238.     mutate(Sueldo_Neto = Total_de_Ingresos - Total_de_Gastos) %>%
  239.     select(Numero_de_Contrato:Total_de_Ingresos, Sueldo_Neto, Financiamiento:PeriodicidadDos) %>%
  240.     mutate(DTI = Total_de_Gastos / Total_de_Ingresos) %>%
  241.     select(Numero_de_Contrato:PeriodicidadDos, DTI)
  242.  
  243. base_datos_modificable_modelo_true <- base_datos_modificable_modelo_true[-which(is.na(base_datos_modificable_modelo_true$Financiamiento)),]
  244.  
  245. base_datos_modificable_modelo_true <- base_datos_modificable_modelo_true[-which(is.na(base_datos_modificable_modelo_true$Fecha_de_Ingreso)),]
  246.   base_datos_modificable_modelo_true
  247. # Assuming your calculated data is stored in a data frame named 'base_datos_modificable_modelo_true'
  248. pathmodelo <- paste0("FlexiCredit - Datos Modelo ", Sys.Date())
  249.  
  250.  
  251.   matching_files2 <- list.files(path = dirname(paste0(Documents_path, "\\Integration\\SHINY\\CALCULODEPROBABILIDAD\\FlexiCredit - Datos Modelo ")), pattern = basename("FlexiCredit - Datos Modelo "))
  252.  
  253.   file_path <- paste0(Documents_path, "\\Integration\\DATA\\MODELO\\MODELOFINAL\\", pathmodelo  ,".xlsx")
  254.   file_path2 <- paste0(Documents_path, "\\Integration\\DATA\\MODELO\\MODELOFINAL\\", pathmodelo  ,".csv")
  255.   file_path3 <- paste0(Documents_path, "\\Integration\\SHINY\\CALCULODEPROBABILIDAD\\", matching_files2 )
  256.   file_path3_paste <- paste0(Documents_path, "\\Integration\\SHINY\\CALCULODEPROBABILIDAD\\", pathmodelo ,".csv")
  257.  
  258.   # Check if the file exists, then delete it before writing the new data
  259.   if(file.exists(file_path)) {
  260.     file.remove(file_path)
  261.   }
  262.  
  263.   if(file.exists(file_path2)) {
  264.     file.remove(file_path2)
  265.   }
  266.  
  267.   if(file.exists(file_path3)) {
  268.     file.remove(file_path3)
  269.   }
  270.  
  271.   # Write data to an Excel file
  272.   write_xlsx(base_datos_modificable_modelo_true, file_path)
  273.  
  274.   write.csv(base_datos_modificable_modelo_true, file_path2, row.names = FALSE)
  275.  
  276.   write.csv(base_datos_modificable_modelo_true, file_path3_paste, row.names = FALSE)
  277.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement