library(readxl)
library(dplyr)

base1<-read_excel("C:/Users/cm695/OneDrive/Desktop/Datos Eva alma/Base unificada.xlsx")

head(base1,10)
## # A tibble: 10 × 44
##    `Día Recepción`     Documento `Segunda Guia` `Nro Pesaje` Planta      Lote
##    <dttm>                  <dbl>          <dbl> <chr>        <chr>      <dbl>
##  1 2025-08-01 00:00:00    103375             NA 98885        MPPATPNP 1.06e13
##  2 2025-08-01 00:00:00    103377             NA 98891        MPPATPNP 1.06e13
##  3 2025-08-01 00:00:00   1414052             NA 98916        MPPATPNP 1.06e13
##  4 2025-08-01 00:00:00   1414053             NA 98916        MPPATPNP 1.06e13
##  5 2025-08-01 00:00:00     71789             NA 98920        MPPATPNP 1.06e13
##  6 2025-08-01 00:00:00     71793             NA 98919        MPPATPNP 1.06e13
##  7 2025-08-01 00:00:00    140116             NA 98915        MPPATPNP 1.06e13
##  8 2025-08-01 00:00:00     56572             NA 98905        MPPATPNP 1.06e13
##  9 2025-08-01 00:00:00     56570             NA 98906        MPPATPNP 1.06e13
## 10 2025-08-01 00:00:00     56554             NA 98904        MPPATPNP 1.06e13
## # ℹ 38 more variables: `Numero articulo` <chr>, Descripción <chr>,
## #   Proveedor <dbl>, `Razon Social` <chr>, `Codigo sucursal Origen` <dbl>,
## #   `Nombre Sucursal Origen` <chr>, `Patente Vehiculo` <chr>,
## #   `Acoplado Vehiculo` <chr>, Embarcación <chr>, Muelle <chr>, Tipo <chr>,
## #   `Fecha Salida Planta` <dttm>, `Fecha 2da Guia` <dttm>,
## #   `Hora Salida Planta` <chr>, BINS500 <dbl>, BINS1000 <dbl>, `TN Guia` <dbl>,
## #   Toneladas <dbl>, `Cant Vale` <dbl>, `Hum Origen` <dbl>, …
# Instalar librerías si no las tienes (solo necesitas hacerlo una vez)
if(!require(tidyverse)) install.packages("tidyverse")

library(tidyverse)

# Asumimos que tu data frame se llama 'base1'
# 1. Procesamiento y Limpieza de Datos
datos_grafico <- base1 %>%
  mutate(
    # Estandarizar texto para evitar errores de duplicados
    Origen = toupper(trimws(`Nombre Sucursal Origen`)),
    Destino = toupper(trimws(Planta)),
    Tipo_Medio = toupper(trimws(Tipo)),
    
    # Lógica para determinar Tipo de Transporte:
    # Si hay dato en 'Embarcación', es Marítimo, si no, Terrestre.
    Tipo_Transporte = ifelse(!is.na(Embarcación) & Embarcación != "", 
                             "Maritimo", 
                             "Terrestre")
  ) %>%
  # Agrupar para calcular la frecuencia
  group_by(Origen, Tipo_Transporte, Tipo_Medio, Destino) %>%
  summarise(Frecuencia = n(), .groups = 'drop')

# 2. Filtro de Top Orígenes (Opcional pero recomendado para legibilidad)
# Seleccionamos los 20 orígenes con más movimientos en total
top_origenes <- datos_grafico %>%
  group_by(Origen) %>%
  summarise(Total = sum(Frecuencia)) %>%
  top_n(20, Total) %>%
  pull(Origen)

datos_filtrados <- datos_grafico %>%
  filter(Origen %in% top_origenes)

# 3. Generación del Gráfico
ggplot(datos_filtrados, aes(x = reorder(Origen, Frecuencia), y = Frecuencia, fill = Destino)) +
  geom_bar(stat = "identity") +
  # Dividir el gráfico en paneles por Transporte y Medio para facilitar el análisis
  facet_grid(Tipo_Transporte ~ Tipo_Medio, scales = "free_y", space = "free_y") +
  coord_flip() + # Barras horizontales para leer mejor los nombres
  labs(
    title = "Distribución de Frecuencia por Origen, Transporte y Medio",
    subtitle = "Análisis de los 20 Orígenes más frecuentes",
    x = "Origen",
    y = "Frecuencia (N° de Registros)",
    fill = "Destino (Planta)"
  ) +
  theme_minimal() +
  theme(
    strip.background = element_rect(fill = "#f0f0f0", color = NA),
    strip.text = element_text(face = "bold", size = 10),
    legend.position = "bottom"
  )

# 1. Cargar librerías
library(readr)
library(dplyr)
library(ggplot2)
library(lubridate)

# 2. Cargar la base de datos en el objeto 'Base2'
# Asegúrate de que el archivo .csv esté en tu carpeta de trabajo

Base1 <- read_csv(file.choose())
## Multiple files in zip: reading '[Content_Types].xml'
## Rows: 1 Columns: 1
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# 3. Procesamiento de datos
# - Convertimos la fecha
# - Filtramos SOLO el mes de Octubre (Mes 10)
# - Agrupamos por Día para contar cuántos viajes hubo cada día
Data_Octubre <- base1 %>%
  mutate(Fecha = as.Date(`Día Recepción`)) %>%    # Convertir a fecha
  filter(!is.na(Fecha)) %>%                       # Eliminar vacíos
  filter(month(Fecha) == 10) %>%                  # FILTRO CLAVE: Solo Octubre
  group_by(Fecha) %>%
  summarise(Cantidad_Viajes = n())                # Conteo diario

# 4. Generar el Gráfico con Línea de Tendencia
ggplot(Data_Octubre, aes(x = Fecha, y = Cantidad_Viajes)) +
  geom_point(color = "darkred", size = 3) +                 # Puntos diarios (reales)
  geom_smooth(method = "lm", color = "blue", se = TRUE) +   # Línea de tendencia lineal
  labs(
    title = "Tendencia de Operaciones",
    subtitle = "Análisis de frecuencia diaria",
    x = "Día del mes",
    y = "Cantidad de Viajes"
  ) +
  theme_minimal() +
  scale_x_date(date_labels = "%d-%b", date_breaks = "3 days") # Formato eje X
## `geom_smooth()` using formula = 'y ~ x'