R:通过混合效应模型循环多个自变量 [英] R: loop multiple independent variables through a mixed effect model

查看:8
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆