如何循环多路anova

时间:2015-12-10 17:46:02

标签: r anova

这是我使用R的前几周,我一直在解决问题。我希望你们能帮助我!

我正在进行多向ANOVA(aov(Eicosane~SEX + STATUS,data = data_wide)。现在我有大约26种不同的因变量,它们是在果蝇果实上发现的化合物(在本例中为Eicosane)苍蝇,我想看看发现的化合物是否可以解决性别或状态。有没有办法使用某种循环,所以我不需要每次手动更改因变量,并可以获得输出在1档?

Someone recommended; {For (i in 1:26)}
(aov(i ~SEX+STATUS,data=data_wide)}
Result}

但它给出了错误:意外'在'。 R会自动将我的数据集中的我的列编号为1,2,3等......?

我希望它有点清楚,并为这个新手问题道歉,但我似乎无法自己解决这个问题。

非常感谢!

1 个答案:

答案 0 :(得分:0)

例如:

data(prostate, package= "faraway")
for (i in 1:ncol(prostate)) {
  print(summary(aov(prostate[,i] ~., data= prostate)))
}

在这种情况下,我使用所有列与aov调用中剩余的1列。如果您希望从您的因变量集合中排除SEXSTATUS,则必须在for循环中修改调用,例如:

cols <- (1:ncol(data_wide))[-c(which(names(data_wide) %in% c("SEX", "STATUS")))]
for (i in cols) {...}