这是我的数据的标题:
Location Aeration Species Form Method Repeat Days Act Bac COD Fun NH3 NO2 NO3 TN TP SP SS ChlA TDS Sal ODO
现在我想对从Act到ODO的每个数据进行aov分析,这需要公式作为参数,例如Act~Species,如果没有使用循环,我必须输入“Act~Species”,“Bac~Species” “,”COD~Species“......所以我想知道是否有某种方法来循环公式中的数据列,for
循环和apply
家族如lapply
都可以。我尝试使用数据[,8],数据[8]和数据[[8]]等索引进行循环,但报告错误。谁能告诉我如何在R公式中循环?如果在Hadley Wickham的tidyverse
包中提供任何解决方案,例如dplyr
?提前致谢!
假设您的数据存储在名为df
的数据框中,并且我正确计数,使得Act
为col 8,ODO
为col 22:
res_list <- vector(mode="list", length=105)
r <- 1
for (i in 8:22) {
for (j in 8:22) {
if(i>j) {
res_list[[r]] <- aov(as.formula(paste(names(df)[i], "~", names(df)[j])), data=df)
r <- r+1
}
}
}