选择数据帧的不同列以在R中的for循环中运行ANOVA?

时间:2015-06-14 17:31:28

标签: r anova

我正在尝试为名为MegaData的数据框中的二项分布数据运行ANOVA,其前4列是具有单位,年份和物种的分类变量。下面是我的R代码,当我尝试循环数据框的不同列来运行我的模型时,它不起作用。

mod <- list()
for (i in MegaData[,5:36]) {
  for(j in length(MegaData[,5:36])){
    mod[[j]] <- glm(i/number ~ Unit*BeginYear*species_raw,
    family = binomial(link = logit), weight=number, 
    data = MegaData)
    print(anova(mod[[j]]), test="Chisq")
    print(summary(mod[[j]]))
  }
}

1 个答案:

答案 0 :(得分:0)

如果您尝试在5:36中为每列训练一个模型,获取拟合模型的列表并打印出每个模型的摘要,您可以尝试:

set.seed(144)
MegaData <- data.frame(number=sample(1001:2000, 1000, replace=TRUE), Unit=sample(1:10, 1000, replace=TRUE), BeginYear=sample(2000:2010, 1000, replace=TRUE), species_raw=sample(letters[1:3], 1000, replace=TRUE))
for (i in 1:32) {MegaData[[paste0("dat", i)]] <- sample(1:1000, 1000, replace=TRUE)}

数据:

<a expr:href='data:blog.homepageUrl'><data:title/></a>