set.seed(123)

datos = data.frame(
  gen = gl(3,4,12, c('g1','g2','g3')),
  rep = gl(4,1,12, c('r1','r2','r3','r4')),
  rto = c(3.5, 3.8, 3.6, 3.5,
          3.6, 3.9, 4.1, 3.8,
          4.2, 3.9, 4.3, 4.3)
)
### TABLA ANÁLISIS DE VARIANZA
boxplot(rto ~ gen, data = datos)

boxplot(rto ~ rep, data = datos)

### TABLA ANÁLISIS DE VARIANZA
mod = aov(rto ~ gen, datos)
summary(mod)
##             Df Sum Sq Mean Sq F value  Pr(>F)   
## gen          2 0.6650  0.3325   10.06 0.00507 **
## Residuals    9 0.2975  0.0331                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
### EJEMPLO 2

set.seed(123)
datos = data.frame(
  fert = gl(5,12,60, c('ctrl','D1','D2','D3','D4')),
  AF = sort(rnorm(60, 10, 0.8))
)

boxplot(AF ~ fert, datos)

mod2 = aov(AF ~ fert,
           datos)
summary(mod2)
##             Df Sum Sq Mean Sq F value Pr(>F)    
## fert         4 28.541   7.135   142.5 <2e-16 ***
## Residuals   55  2.754   0.050                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1