# Datos proporcionados
SST <- 10800    # Suma de cuadrados total
SSA <- 4560     # Suma de cuadrados tratamientos
k <- 3          # Número de tratamientos (métodos)
N <- 30         # Total de empleados

# Cálculos
SSE <- SST - SSA        # Suma de cuadrados del error
df_trat <- k - 1        # Grados de libertad para tratamientos
df_error <- N - k       # Grados de libertad para el error
df_total <- N - 1       # Grados de libertad total

# Cuadrados medios
MS_trat <- SSA / df_trat    # Cuadrado medio para tratamientos
MS_error <- SSE / df_error  # Cuadrado medio para el error

# Estadístico F
F_calculado <- MS_trat / MS_error  # Estadístico F

# Valor-p
p_valor <- 1 - pf(F_calculado, df_trat, df_error)  # Valor-p asociado al estadístico F

# Generar la tabla ANOVA
tabla_anova <- data.frame(
  `Fuente de Variación` = c("Tratamientos", "Error", "Total"),
  `Suma de Cuadrados` = c(SSA, SSE, SST),
  `Grados de Libertad` = c(df_trat, df_error, df_total),
  `Cuadrado Medio` = c(MS_trat, MS_error, NA),
  `F` = c(F_calculado, NA, NA),
  `Valor-p` = c(p_valor, NA, NA)
)

# Mostrar la tabla ANOVA
print(tabla_anova)
##   Fuente.de.Variación Suma.de.Cuadrados Grados.de.Libertad Cuadrado.Medio
## 1        Tratamientos              4560                  2      2280.0000
## 2               Error              6240                 27       231.1111
## 3               Total             10800                 29             NA
##          F      Valor.p
## 1 9.865385 0.0006078148
## 2       NA           NA
## 3       NA           NA