rm(list = ls())


if (!require(tidyverse)) install.packages("tidyverse")
## Cargando paquete requerido: tidyverse
## Warning: package 'ggplot2' was built under R version 4.4.2
## Warning: package 'readr' was built under R version 4.4.2
## Warning: package 'dplyr' was built under R version 4.4.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
if (!require(ggplot2)) install.packages("ggplot2")
if (!require(cluster)) install.packages("cluster")
## Cargando paquete requerido: cluster
## Warning: package 'cluster' was built under R version 4.4.2
if (!require(corrplot)) install.packages("corrplot")
## Cargando paquete requerido: corrplot
## Warning: package 'corrplot' was built under R version 4.4.2
## corrplot 0.95 loaded
if (!require(car)) install.packages("car")
## Cargando paquete requerido: car
## Warning: package 'car' was built under R version 4.4.2
## Cargando paquete requerido: carData
## Warning: package 'carData' was built under R version 4.4.2
## 
## Adjuntando el paquete: 'car'
## 
## The following object is masked from 'package:dplyr':
## 
##     recode
## 
## The following object is masked from 'package:purrr':
## 
##     some
if (!require(shiny)) install.packages("shiny")
## Cargando paquete requerido: shiny
## Warning: package 'shiny' was built under R version 4.4.2
if (!require(shinydashboard)) install.packages("shinydashboard")
## Cargando paquete requerido: shinydashboard
## Warning: package 'shinydashboard' was built under R version 4.4.2
## 
## Adjuntando el paquete: 'shinydashboard'
## 
## The following object is masked from 'package:graphics':
## 
##     box
if (!require(readxl)) install.packages("readxl")
## Cargando paquete requerido: readxl
## Warning: package 'readxl' was built under R version 4.4.2
library(tidyverse)
library(ggplot2)
library(cluster)
library(corrplot)
library(car)
library(shiny)
library(shinydashboard)
library(readxl)

file_path <- "C:/Users/Leonardo/Downloads/tabla_combinadafinal.xlsx"
df <- as.data.frame(readxl::read_excel(file_path))

df <- df %>%
  mutate(democracia_grupo = ntile(democracia, 4))

histograma_democracia <- function() {
  ggplot(df, aes(x = democracia)) +
    geom_histogram(binwidth = 0.5, fill = "blue", color = "black") +
    theme_minimal() +
    labs(title = "Distribución del Índice de Democracia", x = "Democracia", y = "Frecuencia")
}

boxplot_inversion <- function() {
  ggplot(df, aes(x = factor(democracia_grupo), y = inversion)) +
    geom_boxplot(fill = "purple", color = "black") +
    theme_minimal() +
    labs(title = "Inversión en I+D por Grupos de Democracia", x = "Grupo de Democracia (Cuartiles)", y = "Inversión (% PIB)")
}

dispersión <- function() {
  ggplot(df, aes(x = democracia, y = inversion)) +
    geom_point(color = "darkgreen") +
    geom_smooth(method = "lm", color = "red") +
    theme_minimal() +
    labs(title = "Relación entre Democracia e Inversión", x = "Democracia", y = "Inversión (% PIB)")
}

correlación <- function() {
  cor_matrix <- cor(df %>% select(democracia, inversion, idh, estabilidad, pib, patentes), use = "complete.obs")
  corrplot::corrplot(cor_matrix, method = "circle", type = "upper", tl.cex = 0.8)
}

dendrograma <- function() {
  scaled_data <- scale(df %>% select(democracia, inversion, pib, patentes))
  agnes_model <- cluster::agnes(scaled_data)
  plot(agnes_model, which.plots = 2, main = "Dendrograma (AGNES)")
}

ui <- dashboardPage(
  dashboardHeader(title = "Dashboard de Análisis"),
  dashboardSidebar(
    sidebarMenu(
      menuItem("Distribución de Democracia", tabName = "distribucion", icon = icon("chart-bar")),
      menuItem("Relación Democracia-Inversión", tabName = "relacion", icon = icon("project-diagram")),
      menuItem("Correlaciones", tabName = "correlacion", icon = icon("table")),
      menuItem("Clusterización", tabName = "cluster", icon = icon("object-group"))
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName = "distribucion",
              fluidRow(
                box(plotOutput("hist_democracia"), width = 12, title = "Distribución del Índice de Democracia"),
                box("El histograma muestra cómo se distribuyen los valores de democracia en los países analizados.", width = 12)
              )),
      tabItem(tabName = "relacion",
              fluidRow(
                box(plotOutput("box_inversion"), width = 6, title = "Boxplot: Inversión por Grupos de Democracia"),
                box(plotOutput("scatter_relacion"), width = 6, title = "Dispersión: Democracia vs. Inversión")
              ),
              box("Cómo la inversión en I+D varía según los niveles de democracia", width = 12)),
      tabItem(tabName = "correlacion",
              fluidRow(
                box(plotOutput("matriz_correlacion"), width = 12, title = "Matriz de Correlación"),
                box("La matriz indica la relación entre democracia, inversión y otras variables como IDH o PIB.", width = 12)
              )),
      tabItem(tabName = "cluster",
              fluidRow(
                box(plotOutput("dendrograma"), width = 12, title = "Dendrograma de Clusterización"),
                box("El dendrograma agrupa países basado en las variables de democracia, inversión y desarrollo económico.", width = 12)
              ))
    )
  )
)

server <- function(input, output) {
  output$hist_democracia <- renderPlot({ histograma_democracia() })
  output$box_inversion <- renderPlot({ boxplot_inversion() })
  output$scatter_relacion <- renderPlot({ dispersión() })
  output$matriz_correlacion <- renderPlot({ correlación() })
  output$dendrograma <- renderPlot({ dendrograma() })
}

shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents

```