library(readxl)
library(ggplot2)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# CARGA DE DATOS 


datos <- read_excel("database.xlsx")
## Warning: Expecting numeric in C2189 / R2189C3: got 'Accident Year'
## Warning: Expecting numeric in C2215 / R2215C3: got 'Accident Year'
# VARIABLE: ACCIDENT STATE


accident_state <- datos$`Accident State`

tabla_freq_state <- table(accident_state)
tabla_rel_state  <- prop.table(tabla_freq_state)
tabla_pct_state  <- tabla_rel_state * 100

# Data frame base
df_state <- data.frame(
  Accident_State = names(tabla_freq_state),
  Frecuencia = as.vector(tabla_freq_state),
  Frec_Relativa = as.vector(tabla_rel_state),
  Porcentaje = as.vector(tabla_pct_state)
)

# TOP 10 + OTROS
df_state_top <- df_state %>%
  arrange(desc(Frecuencia)) %>%
  mutate(Accident_State = ifelse(row_number() > 10, "OTROS", Accident_State)) %>%
  group_by(Accident_State) %>%
  summarise(
    Frecuencia = sum(Frecuencia),
    Frec_Relativa = sum(Frec_Relativa),
    Porcentaje = sum(Porcentaje)
  )


# GRÁFICA N°1 – FRECUENCIA


ggplot(df_state_top,
       aes(x = Accident_State, y = Frecuencia)) +
  geom_col(fill = "steelblue") +
  labs(title = "Gráfica No.1: Distribución de Frecuencia Accidentes por Estado",
       x = "Estado", y = "Frecuencia") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# GRÁFICA N°2 – FRECUENCIA RELATIVA


ggplot(df_state_top,
       aes(x = Accident_State, y = Frec_Relativa)) +
  geom_col(fill = "lightgreen") +
  labs(title = "Gráfica No.2: Distribución de Frecuencia Relativa por Estado",
       x = "Estado", y = "Frecuencia Relativa") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# GRÁFICA N°3 – PORCENTAJE


ggplot(df_state_top,
       aes(x = Accident_State, y = Porcentaje)) +
  geom_col(fill = "orange") +
  labs(title = "Gráfica No.3: Distribución de Porcentaje por Estado",
       x = "Estado", y = "Porcentaje (%)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# VARIABLE: ACCIDENT CITY


accident_city <- datos$`Accident City`

df_city <- as.data.frame(table(accident_city))
colnames(df_city) <- c("City", "Frecuencia")

# TOP 7 (SIN OTROS)
df_city_top <- df_city %>%
  arrange(desc(Frecuencia)) %>%
  slice(1:7) %>%
  mutate(
    Porcentaje = round(Frecuencia / sum(Frecuencia) * 100, 1),
    Etiqueta = paste0(City, " – ", Porcentaje, "% (", Frecuencia, ")")
  )


# GRÁFICA N°4 


ggplot(df_city_top,
       aes(x = "", y = Frecuencia, fill = Etiqueta)) +
  geom_bar(stat = "identity", width = 1, color = "white") +
  coord_polar(theta = "y") +
  labs(title = "Gráfica No.4\nDistribución de Accident City",
       fill = "") +
  theme_void() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    legend.text = element_text(size = 10)
  )