[R-es] realizar ANOVAs en Loop

jose luis pepeceb @end|ng |rom y@hoo@e@
Mar Jul 18 20:55:28 CEST 2023


 Holaotra opción, a ver si te sirve.Acabarás teniendo 6 archivos txt y 6 archivos xlsx cada uno con el resultado de cada una de las  iteraciones.
library(purrr)library(broom)


 iter= unique(datos$iteraccion)#Crear el loopfor(i in iter) {
a<-tidy(aov(valor~Grupo,data=subset(datos, iteraccion==i)))

capture.output(a,i, file =paste0(i, ".txt"))print(a)openxlsx:: write.xlsx(a,file = paste0(i,'.xlsx'),                      sheetName = i, append = TRUE)
}




    En martes, 18 de julio de 2023, 16:53:30 CEST, Jorge I Velez <jorgeivanvelez using gmail.com> escribió:  
 
 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]]

_______________________________________________
R-help-es mailing list
R-help-es using r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230718/dc60a3db/attachment-0001.html>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 1689706476600blob.jpg
Type: image/png
Size: 18939 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230718/dc60a3db/attachment-0001.png>


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