1. Introducción

El objetivo de este análisis es construir y visualizar un árbol de decisiones que ayude a “El Mercader de Venecia” a tomar decisiones estratégicas para expandirse a tres municipios del estado de Hidalgo: Huichapan, Tecozautla y Nopala.

# Cargamos paquetes necesarios y limpiamos la memoria
rm(list = ls()) # Remueve trabajos previos
# Cargar librerías necesarias
pacman::p_load(RSQLite, DBI, rpart, rpart.plot, 
               tidyr, janitor, dplyr, ggplot2)
# Quitar notación científica
options(scipen=999)

1.1 Leer la ruta del archivo

# Ruta a la base de datos
db_path <- "arbol_decisiones_expansion.db"

# Establecer la conexión
con <- dbConnect(RSQLite::SQLite(), db_path)

# Imprimir conexión (se llama con)
con
## <SQLiteConnection>
##   Path: C:\Users\USER\OneDrive\Escritorio\Universidad\Gestion\7mo\ANÁLISIS DE DATOS E INTELIGENCIA DE NEGOCIOS\tema 04\Data\arbol_decisiones_expansion.db
##   Extensions: TRUE

Agregar Municipio nuevo a base de datos

# Valores para el nuevo municipio
nuevo_mercado <- data.frame(
  Mercado_ID = 4,  # Un ID único
  Nombre_Mercado = "Apan"
)

nuevo_estudio <- data.frame(
  Estudio_ID = 4,  # Un ID único
  Mercado_ID = 4,  # Relación con el Mercado_ID
  Demanda = 1700,  # Ejemplo de valor para la demanda
  Competencia = 4, # Ejemplo de valor para la competencia
  Crecimiento = 6  # Ejemplo de valor de crecimiento
)

nueva_opcion <- data.frame(
  Opcion_ID = 4,   # Un ID único
  Mercado_ID = 4,  # Relación con el Mercado_ID
  Estrategia = "Foco en productos locales",
  Inversion_Requerida = 170000  # Ejemplo de valor
)
# Verificar si el ID ya existe en la tabla Mercados
id_existente <- dbGetQuery(con, "SELECT Mercado_ID FROM Mercados WHERE Nombre_Mercado = 'Apan'")

# Comprobar si el resultado tiene filas (es decir, si ya existe en la tabla)
if (nrow(id_existente) == 0) {
  # Calcula el próximo ID disponible si no existe
  proximo_id <- dbGetQuery(con, "SELECT MAX(Mercado_ID) + 1 AS Proximo_ID FROM Mercados")
  proximo_id <- ifelse(is.na(proximo_id$Proximo_ID), 1, proximo_id$Proximo_ID)
  
  # Inserta en la tabla Mercados
  dbExecute(con, sprintf("
    INSERT INTO Mercados (Mercado_ID, Nombre_Mercado)
    VALUES (%d, 'Apan');
  ", proximo_id))
  
  # Inserta en la tabla Estudios_Mercado
  dbExecute(con, sprintf("
    INSERT INTO Estudios_Mercado (Estudio_ID, Mercado_ID, Demanda, Competencia, Crecimiento)
    VALUES (%d, %d, 1700, 4, 6);
  ", proximo_id, proximo_id))
  
  # Inserta en la tabla Opciones_Estratégicas
  dbExecute(con, sprintf("
    INSERT INTO Opciones_Estratégicas (Opcion_ID, Mercado_ID, Estrategia, Inversion_Requerida)
    VALUES (%d, %d, 'Foco en productos locales', 170000);
  ", proximo_id, proximo_id))
  
  cat("Nuevo registro insertado con éxito.\n")
} else {
  cat("El municipio Apan ya existe en la tabla Mercados.\n")
}
## El municipio Apan ya existe en la tabla Mercados.

1.2 Obtener lista de tablas disponibles en la base

SELECT name
FROM sqlite_master
WHERE type = "table";
3 records
name
Mercados
Opciones_Estratégicas
Estudios_Mercado

2. Exploración del contenido de las tablas

2.1 Tabla Estudios de Mercado

SELECT * 
FROM Estudios_Mercado
LIMIT 5;
4 records
Estudio_ID Mercado_ID Descripción Resultados Fecha_Estudio
1 1 Estudio de Demanda en Huichapan Se espera un crecimiento moderado con una tendencia favorable a la expansión. 2023-05-01
2 2 Análisis de Competencia en Tecozautla Alta competencia local, requiere una estrategia diferenciada para el éxito. 2023-06-15
3 3 Estudio de Población en Nopala Mercado pequeño pero con baja competencia, alta probabilidad de éxito. 2023-07-20
4 4 Estudio relacionado con Apan Mercado pequeño pero con baja competencia, alta probabilidad de éxito. 2023-07-20

2.2 Tabla Mercados

SELECT *
FROM Mercados
LIMIT 4;
4 records
Mercado_ID Nombre_Mercado Tamaño_Mercado Competencia Costo_Entrada Probabilidad_Éxito
1 Huichapan 50000 Media 1500000 0.65
2 Tecozautla 35000 Alta 1000000 0.55
3 Nopala 25000 Baja 750000 0.75
4 Apan 30000 Media 800000 0.00

2.3 Tabla Opciones Estratégicas

SELECT *
FROM Opciones_Estratégicas
LIMIT 5;
5 records
Opción_ID Mercado_ID Nombre_Opción Costo_Opción Beneficio_Estimado Probabilidad_Éxito_Opción
1 1 Expansión Total 2000000 3000000 0.70
2 1 Alianza Estratégica 1000000 2000000 0.65
3 1 Expansión Parcial 1200000 2500000 0.60
4 2 Expansión Total 1500000 2500000 0.60
5 2 Alianza Estratégica 800000 1800000 0.55
# Verifica si el ID ya existe en la tabla Mercados
id_existente <- dbGetQuery(con, "SELECT Mercado_ID FROM Mercados WHERE Nombre_Mercado = 'Apan'")

# Comprobar si el resultado tiene filas (es decir, si ya existe en la tabla)
if (nrow(id_existente) == 0) {
  # Calcula el próximo ID disponible si no existe
  proximo_id <- dbGetQuery(con, "SELECT MAX(Mercado_ID) + 1 AS Proximo_ID FROM Mercados")
  proximo_id <- ifelse(is.na(proximo_id$Proximo_ID), 1, proximo_id$Proximo_ID)
  
  # Inserta en la tabla Mercados
  dbExecute(con, sprintf("
    INSERT INTO Mercados (Mercado_ID, Nombre_Mercado)
    VALUES (%d, 'Apan');
  ", proximo_id))
  
  # Inserta en la tabla Estudios_Mercado
  dbExecute(con, sprintf("
    INSERT INTO Estudios_Mercado (Estudio_ID, Mercado_ID, Demanda, Competencia, Crecimiento)
    VALUES (%d, %d, 1700, 4, 6);
  ", proximo_id, proximo_id))
  
  # Inserta en la tabla Opciones_Estratégicas
  dbExecute(con, sprintf("
    INSERT INTO Opciones_Estratégicas (Opcion_ID, Mercado_ID, Estrategia, Inversion_Requerida)
    VALUES (%d, %d, 'Foco en productos locales', 170000);
  ", proximo_id, proximo_id))
  
  cat("Nuevo registro insertado con éxito.\n")
} else {
  cat("El municipio Apan ya existe en la tabla Mercados.\n")
}
## El municipio Apan ya existe en la tabla Mercados.
# Primero, comprobamos si el municipio ya existe en la tabla
municipio_existente <- dbGetQuery(con, "SELECT Mercado_ID FROM Mercados WHERE Nombre_Mercado = 'Apan'")

if (nrow(municipio_existente) == 0) {
  # Si no existe, insertamos el nuevo registro
  proximo_id <- dbGetQuery(con, "SELECT MAX(Mercado_ID) + 1 AS Proximo_ID FROM Mercados")
  proximo_id <- ifelse(is.na(proximo_id$Proximo_ID), 1, proximo_id$Proximo_ID)
  
  # Inserta el nuevo municipio en la tabla Mercados
  dbExecute(con, sprintf("
    INSERT INTO Mercados (Mercado_ID, Nombre_Mercado)
    VALUES (%d, 'Apan');
  ", proximo_id))
  
  cat("Nuevo municipio 'Apan' insertado con éxito.\n")
} else {
  cat("El municipio 'Apan' ya existe en la tabla Mercados.\n")
}
## El municipio 'Apan' ya existe en la tabla Mercados.
# Obtener el Mercado_ID de Apan
id_Apan <- dbGetQuery(con, "SELECT Mercado_ID FROM Mercados WHERE Nombre_Mercado = 'Apan'")

# Verificar si se encontró el ID y proceder a la inserción
if (nrow(id_Apan) > 4) {
  # Extraer el valor de Mercado_ID
  mercado_id <- id_Apan$Mercado_ID
  
  # Preparar la consulta para insertar un nuevo registro en Estudios_Mercado
  sql_insercion <- sprintf("
    INSERT INTO Estudios_Mercado (Mercado_ID, Columna1, Columna2, Columna3)
    VALUES (%d, 'Valor1', 'Valor2', 'Valor3');
  ", mercado_id)
  
  # Ejecutar la consulta de inserción
  dbExecute(con, sql_insercion)
  
  cat("Nuevo registro insertado en Estudios_Mercado con éxito.\n")
} else {
  cat("No se pudo insertar en Estudios_Mercado porque Apan no tiene un ID válido.\n")
}
## No se pudo insertar en Estudios_Mercado porque Apan no tiene un ID válido.
if (nrow(id_Apan) > 5) {
  mercado_id <- id_Apan$Mercado_ID
  
  # Verificar si el Mercado_ID ya está en la tabla Estudios_Mercado
  id_existente <- dbGetQuery(con, sprintf("SELECT * FROM Estudios_Mercado WHERE Mercado_ID = %d", mercado_id))
  
  if (nrow(id_existente) == 5) {
    # Si no existe, se inserta un nuevo registro
    # Asegúrate de que la descripción sea adecuada
    sql_insercion <- sprintf("
      INSERT INTO Estudios_Mercado (Mercado_ID, Descripción)
      VALUES (%d, 'Descripción de Apan');
    ", mercado_id)
    
    # Ejecutar la consulta de inserción
    dbExecute(con, sql_insercion)
    cat("Nuevo registro insertado en Estudios_Mercado con éxito.\n")
  } else {
    cat("El Mercado_ID de Apan ya existe en la tabla Estudios_Mercado.\n")
  }
} else {
  cat("No se encontró el Mercado_ID de Apan.\n")
}
## No se encontró el Mercado_ID de Apan.
# Verificar si ya existe un registro con el Mercado_ID 4 en la tabla Estudios_Mercado
id_existente <- dbGetQuery(con, "SELECT * FROM Estudios_Mercado WHERE Mercado_ID = 4")

if (nrow(id_existente) == 0) {
  # Insertar el nuevo registro en la tabla Estudios_Mercado
  sql_insercion <- "INSERT INTO Estudios_Mercado (Mercado_ID, Descripción) VALUES (4, 'Estudio relacionado con Apan')"
  
  # Ejecutar la consulta de inserción
  dbExecute(con, sql_insercion)
  cat("Nuevo registro insertado en Estudios_Mercado con éxito.\n")
} else {
  cat("El registro con el Mercado_ID 4 ya existe en la tabla Estudios_Mercado.\n")
}
## El registro con el Mercado_ID 4 ya existe en la tabla Estudios_Mercado.

Actualizacion tabla Estudios_Mercado

# Definir los valores para las columnas Resultados y Fecha_Estudio
resultados_nuevos <- "Mercado pequeño pero con baja competencia, alta probabilidad de éxito."
fecha_estudio_nueva <- "2023-07-20"

# Actualizar el registro en la tabla Estudios_Mercado
sql_actualizacion <- sprintf(
  "UPDATE Estudios_Mercado SET Resultados = '%s', Fecha_Estudio = '%s' WHERE Estudio_ID = %d",
  resultados_nuevos,
  fecha_estudio_nueva,
  nuevo_estudio$Estudio_ID
)

# Ejecutar la consulta de actualización
dbExecute(con, sql_actualizacion)
## [1] 1
cat("Las columnas Resultados y Fecha_Estudio se han actualizado con éxito.\n")
## Las columnas Resultados y Fecha_Estudio se han actualizado con éxito.
# Consultar y mostrar todos los registros de la tabla Estudios_Mercado
resultados_estudios <- dbGetQuery(con, "SELECT * FROM Estudios_Mercado")
print(resultados_estudios)
##   Estudio_ID Mercado_ID                           Descripción
## 1          1          1       Estudio de Demanda en Huichapan
## 2          2          2 Análisis de Competencia en Tecozautla
## 3          3          3        Estudio de Población en Nopala
## 4          4          4          Estudio relacionado con Apan
##                                                                      Resultados
## 1 Se espera un crecimiento moderado con una tendencia favorable a la expansión.
## 2   Alta competencia local, requiere una estrategia diferenciada para el éxito.
## 3        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
## 4        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
##   Fecha_Estudio
## 1    2023-05-01
## 2    2023-06-15
## 3    2023-07-20
## 4    2023-07-20

3 Manejo de tablas con SQL

3.1 Unión de dos tablas con SQL

-- Consultamos los datos de las tablas Estudios_Mercado y Mercados
SELECT estudios_mercado.*, mercado.*
FROM Estudios_Mercado AS estudios_mercado
INNER JOIN Mercados AS mercado
ON estudios_mercado.Mercado_ID = mercado.Mercado_ID;
4 records
Estudio_ID Mercado_ID Descripción Resultados Fecha_Estudio Mercado_ID Nombre_Mercado Tamaño_Mercado Competencia Costo_Entrada Probabilidad_Éxito
1 1 Estudio de Demanda en Huichapan Se espera un crecimiento moderado con una tendencia favorable a la expansión. 2023-05-01 1 Huichapan 50000 Media 1500000 0.65
2 2 Análisis de Competencia en Tecozautla Alta competencia local, requiere una estrategia diferenciada para el éxito. 2023-06-15 2 Tecozautla 35000 Alta 1000000 0.55
3 3 Estudio de Población en Nopala Mercado pequeño pero con baja competencia, alta probabilidad de éxito. 2023-07-20 3 Nopala 25000 Baja 750000 0.75
4 4 Estudio relacionado con Apan Mercado pequeño pero con baja competencia, alta probabilidad de éxito. 2023-07-20 4 Apan 30000 Media 800000 0.00

3.2 Consulta cruzada de tablas

-- Unir tablas Estudios_Mercado con Mercados, usando columna Mercado_ID
-- Filtrar para columna Nombre_Mercado == "Apan"
SELECT estudios_mercado.*, mercado.*
FROM Estudios_Mercado AS estudios_mercado
INNER JOIN Mercados AS mercado
ON estudios_mercado.Mercado_ID = mercado.Mercado_ID
WHERE mercado.Nombre_Mercado = "Apan";
1 records
Estudio_ID Mercado_ID Descripción Resultados Fecha_Estudio Mercado_ID Nombre_Mercado Tamaño_Mercado Competencia Costo_Entrada Probabilidad_Éxito
4 4 Estudio relacionado con Apan Mercado pequeño pero con baja competencia, alta probabilidad de éxito. 2023-07-20 4 Apan 30000 Media 800000 Alta

4. Exploración de columnas en una tabla

4.1 Columnas de tabla Estudios de Mercado

-- Similar a función str()  en R
-- Información necesaria para realizar nuevos registros
PRAGMA table_info(Estudios_Mercado);
5 records
cid name type notnull dflt_value pk
0 Estudio_ID INTEGER 0 NA 1
1 Mercado_ID INTEGER 0 NA 0
2 Descripción TEXT 0 NA 0
3 Resultados TEXT 0 NA 0
4 Fecha_Estudio DATE 0 NA 0

5. Vista previa de los datos en R

# Ejemplo de programación en R
# Guardar lista de tablas en un objeto llamado tables
# Vamos a leer las tablas completas porque no son muy grandes
tables <-  dbGetQuery(con, "SELECT name FROM sqlite_master WHERE type = 'table';")$name

# Loop para tener vista previa el contenido de cada tabla
for (table in tables){
  my_query <- paste("SELECT * FROM", table, "LIMIT 5")
  data_table <- dbGetQuery(con, my_query)
  print(data_table)
}
## Warning: Column `Probabilidad_Éxito`: mixed type, first seen values of type
## real, coercing other values of type string
##   Mercado_ID Nombre_Mercado Tamaño_Mercado Competencia Costo_Entrada
## 1          1      Huichapan          50000       Media       1500000
## 2          2     Tecozautla          35000        Alta       1000000
## 3          3         Nopala          25000        Baja        750000
## 4          4           Apan          30000       Media        800000
##   Probabilidad_Éxito
## 1               0.65
## 2               0.55
## 3               0.75
## 4               0.00
##   Opción_ID Mercado_ID       Nombre_Opción Costo_Opción Beneficio_Estimado
## 1         1          1     Expansión Total      2000000            3000000
## 2         2          1 Alianza Estratégica      1000000            2000000
## 3         3          1   Expansión Parcial      1200000            2500000
## 4         4          2     Expansión Total      1500000            2500000
## 5         5          2 Alianza Estratégica       800000            1800000
##   Probabilidad_Éxito_Opción
## 1                      0.70
## 2                      0.65
## 3                      0.60
## 4                      0.60
## 5                      0.55
##   Estudio_ID Mercado_ID                           Descripción
## 1          1          1       Estudio de Demanda en Huichapan
## 2          2          2 Análisis de Competencia en Tecozautla
## 3          3          3        Estudio de Población en Nopala
## 4          4          4          Estudio relacionado con Apan
##                                                                      Resultados
## 1 Se espera un crecimiento moderado con una tendencia favorable a la expansión.
## 2   Alta competencia local, requiere una estrategia diferenciada para el éxito.
## 3        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
## 4        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
##   Fecha_Estudio
## 1    2023-05-01
## 2    2023-06-15
## 3    2023-07-20
## 4    2023-07-20

Asignar valores a Apan en tabla mercados

# Paso 1: Verificar si el Mercado_ID 4 existe en la tabla Mercados
consulta_id <- dbGetQuery(con, "SELECT Mercado_ID, Nombre_Mercado FROM Mercados WHERE Mercado_ID = 4")

# Verificar si la consulta devolvió resultados
if (nrow(consulta_id) > 0) {
  # Imprimir los resultados para confirmar que el ID existe
  print(consulta_id)
  
  # Paso 2: Realizar la actualización de la tabla Mercados si el ID existe
  # Definir los valores para la actualización
  tamano_mercado_nuevo <- 30000  # Ejemplo de tamaño de mercado
  competencia_nueva <- "Media"   # Ejemplo de competencia
  costo_entrada_nuevo <- 800000  # Ejemplo de costo de entrada
  probabilidad_exito_nueva <- "Alta"  # Ejemplo de probabilidad de éxito

  # Crear la consulta de actualización
  sql_actualizacion_mercado <- sprintf(
    "UPDATE Mercados SET Tamaño_Mercado = %d, Competencia = '%s', Costo_Entrada = %f, Probabilidad_Éxito = '%s' WHERE Mercado_ID = 4",
    tamano_mercado_nuevo,
    competencia_nueva,
    costo_entrada_nuevo,
    probabilidad_exito_nueva
  )

  # Ejecutar la consulta de actualización
  dbExecute(con, sql_actualizacion_mercado)
  cat("Las columnas Tamaño_Mercado, Competencia, Costo_Entrada y Probabilidad_Éxito se han actualizado con éxito para Apan.\n")
} else {
  cat("No se pudo realizar la actualización. Mercado_ID 4 no encontrado.\n")
}
##   Mercado_ID Nombre_Mercado
## 1          4           Apan
## Las columnas Tamaño_Mercado, Competencia, Costo_Entrada y Probabilidad_Éxito se han actualizado con éxito para Apan.
# Verificar si el duplicado con Mercado_ID 5 existe en la tabla
consulta_duplicado <- dbGetQuery(con, "SELECT Mercado_ID, Nombre_Mercado FROM Mercados WHERE Mercado_ID = 5")

# Comprobar si el duplicado existe
if (nrow(consulta_duplicado) > 0) {
  cat("Se encontró un duplicado con Mercado_ID 5. Procediendo a eliminarlo.\n")
  
  # Eliminar el duplicado
  dbExecute(con, "DELETE FROM Mercados WHERE Mercado_ID = 5")
  cat("El duplicado con Mercado_ID 5 ha sido eliminado.\n")
  
  # Opcional: Verificar la tabla después de la eliminación
  consulta_verificacion <- dbGetQuery(con, "SELECT * FROM Mercados WHERE Mercado_ID = 5")
  if (nrow(consulta_verificacion) == 0) {
    cat("La eliminación se realizó con éxito. No hay registros con Mercado_ID 5.\n")
  } else {
    cat("Error al eliminar el duplicado. El registro aún existe.\n")
  }
} else {
  cat("No se encontró un duplicado con Mercado_ID 5. No se realizó ninguna acción.\n")
}
## No se encontró un duplicado con Mercado_ID 5. No se realizó ninguna acción.

6. Cargar los datos de las tablas

# Con esto las tablas ya están por separado como objetos en R
mercados <- dbGetQuery(con, "SELECT * FROM Mercados")
## Warning: Column `Probabilidad_Éxito`: mixed type, first seen values of type
## real, coercing other values of type string
opciones <- dbGetQuery(con, "SELECT * FROM Opciones_Estratégicas")
estudios <- dbGetQuery(con, "SELECT * FROM Estudios_Mercado")

# Imprimir tablas
mercados
##   Mercado_ID Nombre_Mercado Tamaño_Mercado Competencia Costo_Entrada
## 1          1      Huichapan          50000       Media       1500000
## 2          2     Tecozautla          35000        Alta       1000000
## 3          3         Nopala          25000        Baja        750000
## 4          4           Apan          30000       Media        800000
##   Probabilidad_Éxito
## 1               0.65
## 2               0.55
## 3               0.75
## 4               0.00
opciones
##   Opción_ID Mercado_ID       Nombre_Opción Costo_Opción Beneficio_Estimado
## 1         1          1     Expansión Total      2000000            3000000
## 2         2          1 Alianza Estratégica      1000000            2000000
## 3         3          1   Expansión Parcial      1200000            2500000
## 4         4          2     Expansión Total      1500000            2500000
## 5         5          2 Alianza Estratégica       800000            1800000
## 6         6          2   Expansión Parcial      1000000            2200000
## 7         7          3     Expansión Total      1200000            2000000
## 8         8          3 Alianza Estratégica       600000            1500000
## 9         9          3   Expansión Parcial       800000            1800000
##   Probabilidad_Éxito_Opción
## 1                      0.70
## 2                      0.65
## 3                      0.60
## 4                      0.60
## 5                      0.55
## 6                      0.50
## 7                      0.75
## 8                      0.70
## 9                      0.65
estudios
##   Estudio_ID Mercado_ID                           Descripción
## 1          1          1       Estudio de Demanda en Huichapan
## 2          2          2 Análisis de Competencia en Tecozautla
## 3          3          3        Estudio de Población en Nopala
## 4          4          4          Estudio relacionado con Apan
##                                                                      Resultados
## 1 Se espera un crecimiento moderado con una tendencia favorable a la expansión.
## 2   Alta competencia local, requiere una estrategia diferenciada para el éxito.
## 3        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
## 4        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
##   Fecha_Estudio
## 1    2023-05-01
## 2    2023-06-15
## 3    2023-07-20
## 4    2023-07-20
# Crear la tabla inicial llamada opciones
opciones <- data.frame(
  opcion_id = 1:9,
  mercado_id = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
  nombre_opcion = c("Expansión Total", "Alianza Estratégica", "Expansión Parcial",
                    "Expansión Total", "Alianza Estratégica", "Expansión Parcial",
                    "Expansión Total", "Alianza Estratégica", "Expansión Parcial"),
  costo_opcion = c(2000000, 1000000, 1200000, 1500000, 800000, 1000000, 1200000, 600000, 800000),
  beneficio_estimado = c(3000000, 2000000, 2500000, 2500000, 1800000, 2200000, 2000000, 1500000, 1800000)
)

# Crear los datos faltantes para mercado_id = 4
nuevas_filas <- data.frame(
  opcion_id = 10:12,  # Ajustar los IDs
  mercado_id = 4,
  nombre_opcion = c("Expansión Total", "Alianza Estratégica", "Expansión Parcial"),
  costo_opcion = c(1800000, 900000, 1100000),  # Ejemplo de costos para mercado 4
  beneficio_estimado = c(2800000, 1900000, 2300000)  # Ejemplo de beneficios estimados
)

# Unir las tablas
opciones <- rbind(opciones, nuevas_filas)

# Ver la tabla completa
print(opciones)
##    opcion_id mercado_id       nombre_opcion costo_opcion beneficio_estimado
## 1          1          1     Expansión Total      2000000            3000000
## 2          2          1 Alianza Estratégica      1000000            2000000
## 3          3          1   Expansión Parcial      1200000            2500000
## 4          4          2     Expansión Total      1500000            2500000
## 5          5          2 Alianza Estratégica       800000            1800000
## 6          6          2   Expansión Parcial      1000000            2200000
## 7          7          3     Expansión Total      1200000            2000000
## 8          8          3 Alianza Estratégica       600000            1500000
## 9          9          3   Expansión Parcial       800000            1800000
## 10        10          4     Expansión Total      1800000            2800000
## 11        11          4 Alianza Estratégica       900000            1900000
## 12        12          4   Expansión Parcial      1100000            2300000

8. Ajustar nombres de las columnas en las tablas

# Eliminar acentos y espacios de nombres de columnas
mercados <- clean_names(mercados)
opciones <- clean_names(opciones)
estudios <- clean_names(estudios)

# Imprimir resultados
mercados
##   mercado_id nombre_mercado tamano_mercado competencia costo_entrada
## 1          1      Huichapan          50000       Media       1500000
## 2          2     Tecozautla          35000        Alta       1000000
## 3          3         Nopala          25000        Baja        750000
## 4          4           Apan          30000       Media        800000
##   probabilidad_exito
## 1               0.65
## 2               0.55
## 3               0.75
## 4               0.00
opciones
##    opcion_id mercado_id       nombre_opcion costo_opcion beneficio_estimado
## 1          1          1     Expansión Total      2000000            3000000
## 2          2          1 Alianza Estratégica      1000000            2000000
## 3          3          1   Expansión Parcial      1200000            2500000
## 4          4          2     Expansión Total      1500000            2500000
## 5          5          2 Alianza Estratégica       800000            1800000
## 6          6          2   Expansión Parcial      1000000            2200000
## 7          7          3     Expansión Total      1200000            2000000
## 8          8          3 Alianza Estratégica       600000            1500000
## 9          9          3   Expansión Parcial       800000            1800000
## 10        10          4     Expansión Total      1800000            2800000
## 11        11          4 Alianza Estratégica       900000            1900000
## 12        12          4   Expansión Parcial      1100000            2300000
estudios
##   estudio_id mercado_id                           descripcion
## 1          1          1       Estudio de Demanda en Huichapan
## 2          2          2 Análisis de Competencia en Tecozautla
## 3          3          3        Estudio de Población en Nopala
## 4          4          4          Estudio relacionado con Apan
##                                                                      resultados
## 1 Se espera un crecimiento moderado con una tendencia favorable a la expansión.
## 2   Alta competencia local, requiere una estrategia diferenciada para el éxito.
## 3        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
## 4        Mercado pequeño pero con baja competencia, alta probabilidad de éxito.
##   fecha_estudio
## 1    2023-05-01
## 2    2023-06-15
## 3    2023-07-20
## 4    2023-07-20

7. Desconectar la base de datos

# A partir de este paso ya no puedo acceder a la base de datos
dbDisconnect(con)