# Script R: crear datos simulados para el proyecto
set.seed(123)
library(dplyr)
library(tidyr)
# Parámetros del simulador
departamentos <- c("Córdoba","Cesar","Magdalena","Sucre","Meta","Casanare","Bolívar","Antioquia")
anos <- 2020:2024
n_fincas_por_dep <- 8 # ajuste: número de fincas por departamento
# Generar IDs de finca
fincas <- expand.grid(Departamento = departamentos,
FincaNum = 1:n_fincas_por_dep,
stringsAsFactors = FALSE) %>%
arrange(Departamento) %>%
mutate(FincaID = paste0(substr(Departamento,1,3),"_",sprintf("%02d",FincaNum)))
# Generar datos a nivel finca-año
data_list <- list()
for(y in anos){
temp <- fincas %>%
mutate(Año = y,
# tamaño del plantel (variación por departamento y año)
N_animales = round(rnorm(n(), mean = 120 + ifelse(Departamento %in% c("Meta","Casanare"), 40, 0), sd = 25)),
Peso_promedio_ini = round(rnorm(n(), mean = 300, sd = 30),1),
# ganancia de peso promedio diaria (g/día), depende del manejo y año (mejoras)
Ganancia_peso_g_dia = round(rnorm(n(), mean = 600 + (y-2020)*10 + ifelse(Departamento %in% c("Córdoba","Antioquia"),30,0), sd = 70)),
# periodo considerado en días (por ejemplo 365)
Dias = 365,
Peso_promedio_fin = round(Peso_promedio_ini + Ganancia_peso_g_dia * Dias/1000,1),
Produccion_kg = round((Peso_promedio_fin - Peso_promedio_ini) * N_animales * 0.6,1), # factor de rendimiento
Mortalidad_pct = round(runif(n(), 0.5, 3.5),2),
IC_alimenticio = round(runif(n(), 6.5, 9.5),2),
Sistema_manejo = sample(c("Extensivo","Semiextensivo","Intensivo"), n(), replace = TRUE, prob = c(0.6,0.3,0.1)),
Clima = sample(c("Húmedo","Seco","Mixto"), n(), replace = TRUE)
)
data_list[[as.character(y)]] <- temp
}
brahman_df <- bind_rows(data_list) %>%
mutate(Departamento = factor(Departamento),
FincaID = factor(FincaID),
Año = as.integer(Año))
# Sanear y revisar
library(janitor)
brahman_df <- clean_names(brahman_df)
# Vista rápida
head(brahman_df)