[R-es] realizar ANOVAs en Loop

Jorge I Velez jorge|v@nve|ez @end|ng |rom gm@||@com
Mar Jul 18 16:52:50 CEST 2023


Hola Yésica,

A lo mejor hay otras formas, pero esta funciona bien:

R> u <- unique(datos$iteraccion)
R> resultado <- lapply(u, function(i){
  aov(valor ~ Grupo, data = subset(datos, iteraccion == i))
})
R> names(resultado) <- u

Para acceder a la tabla ANOVA para iteraccion T simplemente haces

> resultado[['T']]
Call:
   aov(formula = valor ~ Grupo, data = subset(datos, iteraccion ==
    i))

Terms:
                   Grupo Residuals
Sum of Squares   0.70326  62.83939
Deg. of Freedom        2        13

Residual standard error: 2.19859
Estimated effects may be unbalanced

Si quieres obtener los estadísticos correspondientes basta con hacer

R> summary(resultado[['T']])
Df Sum Sq Mean Sq F value Pr(>F)
Grupo        2   0.70   0.352   0.073   0.93
Residuals   13  62.84   4.834

Espero sea de utilidad.

Saludos,
Jorge.-


On Tue, Jul 18, 2023 at 1:25 AM Yesica Pallavicini Fernandez <
yesipalla using gmail.com> wrote:

> Buenos días y gracias de antemano por vuestra ayuda.
>
> Necesito realizar una serie de ANOVAS en loop.
> Os adjunto unos datos ficticios en este email.
> Dichos datos tienen 3 variables:
> 1)Valor: corresponde a la variable dependiente y es numérica
> 2) Grupo: Corresponde a la variable independiente y es u factor
> 3) Iteracción: Corresponde a la variable sobre la cual hay que repetir los
> ANOVAs con las variables anteriores y es un factor.
>
> Abajo os pego el código con el que he estado trabajando pero que no lo
> tengo bien, porque no puedo acceder a los resultados.
> Os agradeceria mucho si:
> -Me podéis ayudar a mejorar este código para que funcione
> -Si me podéis sugerir alguna fuente que explique bien cómo hacer un loop
> porque no he dado con los blogs adecuados.
> -Que me digáis cuál es vuestro libro/web de estadística favorito para
> profundizar en la matemática detrás de los análisis.
>
> Mil gracias compañeros
> Yésica
>
> library(agricolae)
> library(readxl)
> datosa_fict <- read_excel("datosa-fict.xlsx")
> #Cambiar nombre a la base de datos
> datos=datosa_fict
> #Copiar la variable sobre la que hacer el loop
>
> iter=datos$iteraccion
> #Crear el loop
> for(i in iter) {
>   res=aov(valor~Grupo,data=datos)
>
> }
> #Salvar los resultados
> ANOVA(res)
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es