大佬教程收集整理的这篇文章主要介绍了在 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,请注明来意。