# Cargar librerías
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.1     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.3     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.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
# 1. Recrear los datos del campo
set.seed(42)
datos <- data.frame(
  Parcela = 1:16,
  Tratamiento = rep(c("Riego_50%", "Riego_75%", "Riego_100%", "Riego_125%"), each = 4),
  Eficiencia_Agua = c(rnorm(4, 1.2, 0.15), rnorm(4, 1.8, 0.12),
                      rnorm(4, 1.7, 0.18), rnorm(4, 1.3, 0.14))
)

# Convertir tratamiento a Factor (CRUCIAL para el ANOVA de la próxima semana)
datos$Tratamiento <- as.factor(datos$Tratamiento)

# Verificación rápida para la bitácora
str(datos)
## 'data.frame':    16 obs. of  3 variables:
##  $ Parcela        : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Tratamiento    : Factor w/ 4 levels "Riego_100%","Riego_125%",..: 3 3 3 3 4 4 4 4 1 1 ...
##  $ Eficiencia_Agua: num  1.41 1.12 1.25 1.29 1.85 ...
# 2. Resumen estadístico usando dplyr
resumen <- datos %>%
  group_by(Tratamiento) %>%
  summarise(
    Media = mean(Eficiencia_Agua),
    Desviacion = sd(Eficiencia_Agua)
  )
print(resumen)
## # A tibble: 4 × 3
##   Tratamiento Media Desviacion
##   <fct>       <dbl>      <dbl>
## 1 Riego_100%   1.95     0.189 
## 2 Riego_125%   1.26     0.117 
## 3 Riego_50%    1.27     0.120 
## 4 Riego_75%    1.85     0.0912
# 3. Gráfico exploratorio con ggplot2
# Calcular la media global (ahora en su propia línea, sin el ">" que causaba error)
media_global <- mean(datos$Eficiencia_Agua)

# Generar el gráfico correctamente estructurado
ggplot(datos, aes(x = Tratamiento, y = Eficiencia_Agua)) +
  geom_boxplot(fill = "lightgray", alpha = 0.5) +
  geom_jitter(aes(color = Tratamiento), width = 0.1, size = 3) +
  geom_hline(yintercept = media_global, linetype = "dashed", color = "red") +
  theme_minimal() +
  labs(title = "Exploración Visual: Eficiencia de Agua por Tratamiento",
       x = "Lámina de Riego",
       y = "Eficiencia del Agua (kg/m³)") +
  theme(legend.position = "none")

¡Excelente! Vamos a desglosar este código línea por línea. Te explicaré qué hace en R (sintaxis y función) y qué significa en el contexto del Diseño Experimental en Ingeniería Agrícola (específicamente en riego y eficiencia del agua).


Bloque 1: Preparación del entorno y simulación de datos de campo


Bloque 2: Definición del diseño experimental (Factor)


Bloque 3: Resumen estadístico descriptivo


Bloque 4: Gráfico exploratorio (Visualización de datos)


Bloque final: Nota para la bitácora (Reflexión sobre el Diseño Experimental)

¡Espero que esta explicación te ayude a entender tanto la programación en R como el trasfondo agronómico! La próxima semana, al hacer el ANOVA, confirmarás si tu predicción visual fue acertada.