我对R相当陌生。我有一个数据集,其中包含诸如y,x,c1,c2,m1,m2,m3 ....那里的变量
**y is the key dependent variable
x is the key predictor
c1,c2,c3 are control variables and,
m1,m2,m3..mn are potential moderators( actually there are almost 150 variables in this category).
ID is the cluster
我想使用lme4创建随机截距线性回归模型。以下是我的数据和模型的样本:
y <- rnorm(400, mean=10, sd=3)
x <- rnorm(400, mean=20, sd=2.1)
c1 <- rnorm(400, mean=2, sd=3)
c2 <- rnorm(400, mean=8, sd=3.1)
m1 <- rnorm(400, mean=12, sd=4.5)
m2 <- rnorm(400, mean=25, sd=4)
m3 <- rnorm(400, mean=30, sd=2)
m4 <- rnorm(400, mean=15, sd=3)
m5 <- rnorm(400, mean=12, sd=2.3)
ID <- sample( LETTERS[1:26], 400, replace=TRUE)
data <-as.data.frame(cbind(y,x,c1,c2,m1,m2,m3,m4,m5,ID))
data <- within(data, {
y <- as.numeric(as.character(y))
x <- as.numeric(as.character(x))
c1 <- as.numeric(as.character(c1))
c2 <- as.numeric(as.character(c2))
m1 <- as.numeric(as.character(m1))
m2 <- as.numeric(as.character(m2))
m3 <- as.numeric(as.character(m3))
m4 <- as.numeric(as.character(m4))
m5 <- as.numeric(as.character(m5))
})
m1 <- lmer( y ~ c1 + c2 + x * m1 + (1|ID), data= data)
m2 <- lmer( y ~ c1 + c2 + x * m2 + (1|ID), data= data)
m3 <- lmer( y ~ c1 + c2 + x * m3 + (1|ID), data= data)
m4 <- lmer( y ~ c1 + c2 + x * m4 + (1|ID), data= data)
m5 <- lmer( y ~ c1 + c2 + x * m5 + (1|ID), data= data)
##Expected results (as table or data frame, numbers are only for reference)
Model Var Estimates P-value
m1 x:m1 0.34 0.05
m2 x:m2 0.45 0.001
m4 x:m3 -0.45 0.968
m4 x:m4 -0.45 0.218
m5 x:m5 0.12 0.0001
我想创建一个表,其中包含所有模型的相互作用系数和p值。 我想知道如何使用循环来执行此操作,因为我需要运行50多个模型。任何帮助或指导如何使用循环将不胜感激。 谢谢!