在r循环中运行所有可能的模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在r循环中运行所有可能的模型相关的知识,希望对你有一定的参考价值。

我有3个独立变量(IV),1个因变量(DV)和一个IV group,其他5个DV嵌套在其中。我正在通过尝试将5个IV的所有组合与R中的模型一起探索模型结构(在分层线性模型中)。目前,我的方法是手动编写模型结构,如下所示:

glmer(DV ~ IV1 + (1|group), data = df)
glmer(DV ~ IV2 + (1|group), data = df)
glmer(DV ~ IV3 + (1|group), data = df)
glmer(DV ~ IV1 + IV2 + (1|group), data = df)
glmer(DV ~ IV1 + IV3 + (1|group), data = df)
# etc...

如何在循环中优雅地运行所有可能的模型?

感谢您的帮助!

答案

您还可以使用组合:

 s=paste0("IV",1:3)
 A=Map(combn,list(s),1:3,c(function(x)reformulate(c(x,"(1|group)"),"D")),simplify=F)
 rapply(A,glmer,data=df)

如果你不关心长行代码,那么你也可以在第一行包含glmer函数:

 Map(combn,list(s),1:3,c(function(x)glmer(reformulate(c(x,"(1|group)"),"D"),data=df)),simplify=F)

你也可以将上面的代码分成几行:

s=paste0("IV",1:3)
A=Map(combn,list(s),1:3,c(function(x)paste0(c(x,"(1|group)"),collapse="+")),simplify=F)
B=rapply(A,reformulate,response="D")
lapply(B,glmer,data=df)

我不建议将其进一步分解,尽管可能

以上是关于在r循环中运行所有可能的模型的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django视图中使用for循环返回每次迭代[关闭]

R循环使用列表中的data.frame的函数

R Sys.sleep 打印在 while 循环中不起作用

R中的并行化“查找”循环

如何使用事件侦听器来加载动画片段的循环

如何从片段中调用 getSupportFragmentManager()?