# Cargar la base de datos
data("ChickWeight")

# Mostrar las primeras filas de la base de datos
head(ChickWeight)
##   weight Time Chick Diet
## 1     42    0     1    1
## 2     51    2     1    1
## 3     59    4     1    1
## 4     64    6     1    1
## 5     76    8     1    1
## 6     93   10     1    1
# Crear las tablas filtradas
dieta1 <- ChickWeight[ChickWeight$Diet == 1, ]
dieta2 <- ChickWeight[ChickWeight$Diet == 2, ]
dieta3 <- ChickWeight[ChickWeight$Diet == 3, ]
dieta4 <- ChickWeight[ChickWeight$Diet == 4, ]

# Crear los factores
factor1 <- factor(dieta1$Time)
factor2 <- factor(dieta2$Time)
factor3 <- factor(dieta3$Time)
factor4 <- factor(dieta4$Time)

# Calcular los promedios de los pesos diarios
promedios_dieta1 <- tapply(dieta1$weight, dieta1$Time, mean)
promedios_dieta2 <- tapply(dieta2$weight, dieta2$Time, mean)
promedios_dieta3 <- tapply(dieta3$weight, dieta3$Time, mean)
promedios_dieta4 <- tapply(dieta4$weight, dieta4$Time, mean)

# Convertir a vectores numéricos
vector_promedios_dieta1 <- as.numeric(promedios_dieta1)
vector_promedios_dieta2 <- as.numeric(promedios_dieta2)
vector_promedios_dieta3 <- as.numeric(promedios_dieta3)
vector_promedios_dieta4 <- as.numeric(promedios_dieta4)

# Instalar y cargar ggplot2 si es necesario
if (!require(ggplot2)) {
  install.packages("ggplot2")
  library(ggplot2)
}
## Cargando paquete requerido: ggplot2
# Crear un data frame con los promedios y tiempos
df <- data.frame(
  Time = rep(as.numeric(levels(factor1)), times = 4),
  Weight = c(vector_promedios_dieta1, vector_promedios_dieta2, vector_promedios_dieta3, vector_promedios_dieta4),
  Dieta = rep(c("Dieta1", "Dieta2", "Dieta3", "Dieta4"), each = length(vector_promedios_dieta1))
)

# Crear el gráfico de líneas
ggplot(df, aes(x = Time, y = Weight, color = Dieta, shape = Dieta)) +
  geom_line() +
  geom_point(size = 2) +
  labs(
    title = "Crecimiento promedio en función de la dieta",
    x = "Días",
    y = "Pesos (gramos)",
    color = "Leyendas"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5),
    legend.title = element_text(size = 10),
    legend.text = element_text(size = 8)
  )