Как зацикливаться в формулах в R - PullRequest
0 голосов
/ 31 августа 2018

Вот заголовок моих данных:

Location    Aeration    Species   Form   Method  Repeat  Days   Act    Bac   COD    Fun NH3 NO2 NO3 TN  TP  SP  SS  ChlA    TDS Sal ODO

Теперь я хочу зафиксировать анализ aov для каждого из данных от Act до ODO, для которого нужна формула в качестве аргумента, например Act ~ Species, если циклы не используются, я должен набрать «Act ~ Species», « Bac ~ Species "," COD ~ Species "... так что мне интересно, есть ли какой-нибудь способ зацикливания столбцов данных в формулах, оба цикла for и семейство apply, такие как lapply, в порядке. Я пробовал зацикливаться с такими индексами, как data [, 8], data [8] и data [[8]], но он сообщил об ошибке. Может ли кто-нибудь сказать мне, как сделать цикл в формулах R? И есть ли какое-либо решение в пакете tidyverse Хэдли Уикхэма, такое как dplyr? Заранее спасибо!

1 Ответ

0 голосов
/ 01 сентября 2018

Предполагая, что ваши данные хранятся в фрейме данных с именем 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
    }
}
}
...