我正在对当前具有多个列的数据集执行 Anova 测试,我试图循环这些列以使事情更容易,但在我看来,我总是面临相同的错误,称为“可变长度不同”
这是我的循环代码:
for(i in 5:125){
WL<- colnames(NB[i])
model <- lm(WL ~ Treatment , data = NB)
if(!exists("aovNB")){
aovNB<-anova(model)
}
if(exists("aovNB")){
aovNB <- rbind(aovNB,anova(model))
}
}
我想知道是否有可能将列名存储到 WL 变量中,我可以用它来读取我拥有的多个列。
谢谢如果有人能解决它。我正在使用基础 R。
使用reformulate
/as.formula
从字符串创建公式。也不是在循环中绑定数据集,而是将它们存储在列表中。
cols <- colnames(NB)[5:125]
result <- vector('list', length(cols))
for(i in seq_along(cols)){
model <- lm(reformulate('Treatment', cols[i]) , data = NB)
result[[i]] <- anova(model)
}
如果需要,您可以使用组合它们 result <- do.call(rbind, result)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句