Buenas,
En el bucle estás asignando a la variable X el valor "X1" y no el
contenido de la variable X.
A ver si esto te sirve:
for (Y in 1:2)
{
for (X in 3:4)
{
cat ("Y:", names(df)[Y], "X:", names(df)[X],
"\n")
print (summary (lm (df[,Y] ~ df[,X] + SE + ED,
data <- df)))
}
}
Un saludo.
El lun, 15-11-2021 a las 13:20 +0100, Griera-yandex
escribió:> Hola, buenos dias:
>
> Estoy intentando hacer una serie de regresiones en las que la "y"
y una
> de las "x", son diferentes en cada regresión. Además, hay unos
> predictores constantes. Un ejemplo seria de los datos seria:
>
> N <- 100
>
> # x1, y1
> set.seed(1234)
> x1 <- sample(1:100, N, replace <- TRUE)
> mean(x1);sd(x1)
> y1 <- x1 + 2 + 1.5*rnorm(length(x1))
>
> # x2, y2
> set.seed(5678)
> x2 <- 1:N
> x2 <- sample(1:100, N, replace <- TRUE)
> mean(x2);sd(x2)
> y2 <- x2 + 2 + 1.5*rnorm(length(x2))
>
> df <- data.frame (Y1 <- y1
> , Y2 <- y2
> , X1 <- x1
> , X2 <- x2
> , SE <- factor(rbinom(N, 1, .5))
> , ED <- sample(20:50, N, replace <- TRUE)
> )
>
> Intento hacer dos bucles para cambiar la "y" y las "x":
>
> YL <- c ("Y1", "Y2")
> XL <- c ("X1", "X2")
> for (Y in YL)
> {
> for (X in XL)
> {
> cat ("Y:", Y, "X:", X,
"\n")
> print (summary (lm (Y ~ X + SE + ED,
> data <- df)))
> }
> }
>
> Pero al ejecutarlo, da el error:
>
> Error in model.frame.default(formula = Y ~ X + SE + ED, data = df,
> drop.unused.levels = TRUE) :
> variable lengths differ (found for 'SE')
>
> Parece como si no entendiera que la Y es "Y1" y la X es
"X1" de df.
>
> ¿Alguna ayuda de como se puedes solucionas?
>
> Muchas gracias a todos!
>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es