如何在R中的公式内循环

时间:2018-08-31 13:19:02

标签: r loops formula

这是我的数据的标题:

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系列,例如{{1} }可以。我尝试使用诸如data [,8],data [8]和data [[8]]的索引进行循环,但报告错误。谁能告诉我如何在R公式内循环?以及Hadley Wickham的lapply软件包(例如tidyverse)中是否提供了解决方案?预先感谢!

1 个答案:

答案 0 :(得分:0)

假设您的数据存储在名为df的数据框中,并且我进行了正确计数,使得Act为第8列,而ODO为第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
    }
}
}