Codigo equivalente de R al codigo de python

library(agricolae)
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. Definir los tratamientos y generar el diseño DCA
trt <- c("Riego_50%", "Riego_75%", "Riego_100%", "Riego_125%")
trt
## [1] "Riego_50%"  "Riego_75%"  "Riego_100%" "Riego_125%"
# design.crd genera automáticamente la aleatorización y el croquis
# r = 4 indica las réplicas, seed asegura reproducibilidad
diseno_dca <- design.crd(trt, r = 4, serie = 2, seed = 123)
diseno_dca
## $parameters
## $parameters$design
## [1] "crd"
## 
## $parameters$trt
## [1] "Riego_50%"  "Riego_75%"  "Riego_100%" "Riego_125%"
## 
## $parameters$r
## [1] 4 4 4 4
## 
## $parameters$serie
## [1] 2
## 
## $parameters$seed
## [1] 123
## 
## $parameters$kinds
## [1] "Super-Duper"
## 
## $parameters[[7]]
## [1] TRUE
## 
## 
## $book
##    plots r        trt
## 1    101 1  Riego_75%
## 2    102 1  Riego_50%
## 3    103 1 Riego_125%
## 4    104 1 Riego_100%
## 5    105 2 Riego_100%
## 6    106 2 Riego_125%
## 7    107 3 Riego_100%
## 8    108 3 Riego_125%
## 9    109 2  Riego_50%
## 10   110 3  Riego_50%
## 11   111 4  Riego_50%
## 12   112 2  Riego_75%
## 13   113 3  Riego_75%
## 14   114 4 Riego_125%
## 15   115 4  Riego_75%
## 16   116 4 Riego_100%
# 2. Extraer la planilla de campo generada por agricolae
planilla_r <- diseno_dca$book
planilla_r
##    plots r        trt
## 1    101 1  Riego_75%
## 2    102 1  Riego_50%
## 3    103 1 Riego_125%
## 4    104 1 Riego_100%
## 5    105 2 Riego_100%
## 6    106 2 Riego_125%
## 7    107 3 Riego_100%
## 8    108 3 Riego_125%
## 9    109 2  Riego_50%
## 10   110 3  Riego_50%
## 11   111 4  Riego_50%
## 12   112 2  Riego_75%
## 13   113 3  Riego_75%
## 14   114 4 Riego_125%
## 15   115 4  Riego_75%
## 16   116 4 Riego_100%
# 3. Preparar la estructura para easyanova (Tratamiento como factor)
planilla_final <- planilla_r %>%
  select(plots, trt) %>%
  rename(Parcela = plots, Tratamiento = trt) %>%
  mutate(
    Tratamiento = as.factor(Tratamiento), # ¡Clave para easyanova!
    Eficiencia_Agua = NA # Columna para los datos de campo
  )
    
    # Mostrar la tabla lista para imprimir
print(planilla_final)
##    Parcela Tratamiento Eficiencia_Agua
## 1      101   Riego_75%              NA
## 2      102   Riego_50%              NA
## 3      103  Riego_125%              NA
## 4      104  Riego_100%              NA
## 5      105  Riego_100%              NA
## 6      106  Riego_125%              NA
## 7      107  Riego_100%              NA
## 8      108  Riego_125%              NA
## 9      109   Riego_50%              NA
## 10     110   Riego_50%              NA
## 11     111   Riego_50%              NA
## 12     112   Riego_75%              NA
## 13     113   Riego_75%              NA
## 14     114  Riego_125%              NA
## 15     115   Riego_75%              NA
## 16     116  Riego_100%              NA