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)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230718/304fcf60/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: datosa-fict.xlsx
Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Size: 10992 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20230718/304fcf60/attachment.xlsx>
[R-es] realizar ANOVAs en Loop
5 messages · Yesica Pallavicini Fernandez, Proyecto R-UCA, Jorge I Velez +2 more
Buenas, Yesica:
La variable iteraccion parece una variable factor, en cuyo caso ¿no se deberÃa incluir en el anova? en vez de repetir muchas veces el anova.
Si se trata de repeticiones también hay modelos anova con repeticiones.
En tu código estás haciendo el mismo anova muchas veces pues no cambias los datos en el bucle, además estás haciendo un análisis por cada
fila sin eliminar las repeticiones. Por otra parte no imprimes ni guardas nada dentro del bucle con lo que cuando sales lo que calculas ya
no está.
Prueba lo siguiente.
## Extraer los valores de iteraccion sin repeticiones
iter <- levels(factor(data$iteraccion))
for(i in iter) {
## Hacemos el análisis quedándonos con las filas correspondientes
res = aov(valor~Grupo, data=datos[datos$iteraccion == iter,])
print(summary(res))
}
Un saludo.
P.D.: No lo he probado, puede que tenga alguna errata.
El mar, 18-07-2023 a las 08:25 +0200, Yesica Pallavicini Fernandez escribió:
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 en r-project.org https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!VjLSaDKJejCZoZy1TgKKYQML4mA7DfvcDtUBYj5iRpdFNSsGUU5lEYtfkt0EYWTPD_-5HztE7U6zv48$
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 en 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 en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
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 en 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 en 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 en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
   [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en 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>
Hola,
library(dplyr)
library(purrr)
library(tidyr)
datos_anova <- datosa_fict |>
nest(data = c(valor, Grupo)) |>
mutate(anova = map(.x = data,
.f = ~aov(valor ~ Grupo, data = .x)),
summary = map(.x = anova, .f = ~summary(.x)))
# Acceder a los resultados
datos_anova$anova[datos_anova$iteraccion == "Z"]
datos_anova$summary[datos_anova$iteraccion == "Z"]
El mar, 18 jul 2023 a las 1:25, Yesica Pallavicini Fernandez (<
yesipalla en gmail.com>) escribió:
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 en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
*Aviso legal:* El contenido de este mensaje y los archivos adjuntos son confidenciales y de uso exclusivo de la Universidad Nacional de Colombia. Se encuentran dirigidos sólo para el uso del destinatario al cual van enviados. La reproducción, lectura y/o copia se encuentran prohibidas a cualquier persona diferente a este y puede ser ilegal. Si usted lo ha recibido por error, infórmenos y elimÃnelo de su correo. Los Datos Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra PolÃtica de Datos Personales que podrá consultar en la página web www.unal.edu.co <http://www.unal.edu.co/>.* *Las opiniones, informaciones, conclusiones y cualquier otro tipo de dato contenido en este correo electrónico, no relacionados con la actividad de la Universidad Nacional de Colombia, se entenderá como personales y de ninguna manera son avaladas por la Universidad. [[alternative HTML version deleted]]