R:通过混合效应模型循环多个自变量 [英] R: loop multiple independent variables through a mixed effect model
本文介绍了R:通过混合效应模型循环多个自变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望通过混合效应模型循环使用多个自变量。还有几个类似的问题,但没有一个对我很管用。使用mtcar的示例:
data(mtcars)
mtcars <- mtcars
t <- as.data.frame(seq(from = 10, to = 1000, by = 100))
names(t)[1] <- "return"
t <- as.data.frame(t(t))
#create some new variables to loop through
new <- cbind(mtcars$drat, t)
new2 <- 1-exp(-mtcars$drat/new[, 2:10])
new3 <- cbind(mtcars, new2)
xnam <- paste(colnames(mtcars)[c(3:4)], sep="")
xnam2 <- paste(colnames(reference)[c(12:20)], sep="")
#basic model (works fine)
fmla <- paste(xnam, collapse= "+")
fla <- paste("cyl ~", paste(fmla))
f <- paste0(paste(fla), " +(carb|gear)")
mtcarsmodel <- lmer(f, data= mtcars)
mtcarsmodel
因此,使用我的‘基本’模型,我现在希望通过模型迭代运行xnam2中的每个变量作为固定效果,但无法使用lApply和Paste方法:
f2 <- " +(carb|gear)"
newmodels <- lapply(xnam2, function(x) {
lmer(substitute(paste(fla), i + (paste(f2)), list(i = as.name(x))), data = mtcars)
})
所以cyl~disp+hp+循环变量+(carb|ear)就是我想要的。
希望我要实现的目标已经很清楚了。我对多个浆糊有点困惑,但似乎是处理许多变量的最好方法。有什么建议吗?
推荐答案
如果我已经理解了您的问题,我认为您只需使用paste
创建模型公式,然后使用lapply
迭代每个新变量。
library(lme4)
vars = names(mtcars)[c(1,5,6,7)]
models = lapply(setNames(vars, vars), function(var) {
form = paste("cyl ~ disp + hp + ", var, "+ (carb|gear)")
lmer(form, data=mtcars)
})
这篇关于R:通过混合效应模型循环多个自变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文