[R-es] Bucle de regresiones
Griera-yandex
gr|er@ @end|ng |rom y@ndex@com
Lun Nov 15 13:20:00 CET 2021
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!
Más información sobre la lista de distribución R-help-es