[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