如何在R中的公式内循环

问题描述 投票:0回答:1

这是我的数据的标题:

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?提前致谢!

r loops formula
1个回答
0
投票

假设您的数据存储在名为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
    }
}
}
© www.soinside.com 2019 - 2024. All rights reserved.