程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量??

开发过程中遇到在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量?的问题如何解决?下面主要结合日常开发的经验,给出你关于在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量?的解决方法建议,希望对你解决在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量?有所启发或帮助;

我在 R 中安装了一个混合效应模型。但我想使用单个代码将此模型应用于数据集中的所有数值变量。我写了一个类似下面的代码,但出现错误。我能做什么?

我的数据=df

# 200 x 20
   week      weight     height  .......
  <fct>      <dbl>      <dbl>     
1 week1       50.0       160        
2 week1       62.5       172     
3 week2       49.6       155     
4 week3       80.0       165     
5 week2       56.8       163     
6 week3       72.3       180    
.
.
.
.
 

为单变量建立混合效应模型如下

@H_87_7@mixed.model <- lmer( weight ~ 1 + (1|week),data = df)
a=ranova(mixed)
a$`Pr(>Chisq)`

我写的应用于多个变量的代码

for (i in 2:(dim(df)[2])){
  mixed.model <- lmer( i ~ 1 + (1|week),data = df)
}

我得到的错误

Error in model.frame.default(data = df,drop.unused.levels = TRUE,: variable lengths differ (found for 'week')

解决方法

我可能会先创建一个公式,然后将公式传递给模型函数(感谢 Ben Bolker 提供有关重新公式的提示):

for (i in names(df)[-1]){
  form <- reformulate("1 + (1|week)",response=i)
  mixed.model <- lmer(form,data = df)
}

编辑

为了回应关于总是获取第一个变量的评论,这是我运行循环时得到的,每次打印公式:

df <- data.frame(
  week = sample(1:3,1000,replace=TRUE),X1 = rnorm(1000),X2 = rnorm(1000),X3 = rnorm(1000)
)

library(lme4)
for (i in names(df)[-1]){
  form <- reformulate("1 + (1|week)",response=i)
  print(form)
  # mixed.model <- lmer(form,data = df)
}

# X1 ~ 1 + (1 | week)
# X2 ~ 1 + (1 | week)
# X3 ~ 1 + (1 | week)

如您所见,每次迭代都有不同的公式。

大佬总结

以上是大佬教程为你收集整理的在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量?全部内容,希望文章能够帮你解决在 R 中设置混合效应模型时,该模型如何应用于循环指定的所有变量?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: