R中的可变长度不同

卡尔文·周

我正在对当前具有多个列的数据集执行 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章