Задачи с зацикливанием нескольких комбинаций переменных в линейных моделях для разных рядов - PullRequest
0 голосов
/ 24 сентября 2019

У меня проблема, я думаю, что ее легко решить, однако я не могу найти ответ на нее.

У меня есть файл Excel, который содержит определенное количество столбцов, содержащихряды трафика (T1, T2) с определенными независимыми переменными (V1, V2, V3), к которым приходится строить все возможные комбинации линейных моделей.Я смог сделать это медленно, однако меня попросили оптимизировать цикл, и вот где я борюсь.

Вот воспроизводимый пример:

set.seed(1)
rep.example<-data.frame(V1=rnorm(25,15),V2=rnorm(25,5),V3=runif(25,0.4),T1=rnorm(25,12),T2=rnorm(25,35))

ind.vars = c("V1","V2","V3")

Comb.Matrix <- expand.grid(c(TRUE, FALSE), c(TRUE, FALSE), c(TRUE, FALSE))
names(Comb.Matrix) <- ind.vars

Comb.Matrix <- Comb.Matrix[-(dim(Comb.Matrix)[1]),]


allModelsList       <- apply(Comb.Matrix,
                             1,
                             function(x) as.formula(paste(c(" T1 ~ ",
                                                            ind.vars[x]), collapse = " + ")))

Это создает список со всеми возможными комбинациями линейных моделей для Traffic Series T1.Однако у меня есть данные, где иногда у меня может быть несколько столбцов ряда трафика, и я хотел бы, чтобы модель перебирала столбцы, чтобы в ней все комбинации сохранялись в списках.Я попытался добавить следующее к коду:

Series <- c("T1", "T2")

for (i in 1:length(Series)){
  allModelsList <- apply(Comb.Matrix,
                         1,
                         function(x) as.formula(paste(c(Series[i]," ~ ",
                                                        ind.vars[x]), 
                                                      collapse = " + ")))
}

Я бы хотел, чтобы оно указывало на каждое значение Series и создавало все возможные комбинации с этим значением в форме 'T1 ~ Var Combination' ито же самое для T2 и других возможных столбцов ....

Заранее спасибо.

1 Ответ

0 голосов
/ 24 сентября 2019

Мне удалось обойти это, выполнив следующие действия:

allModelsList=list()

for (i in 1:length(Series)){
  allModelsList <- append(
    allModelsList, 
    apply(Comb.Matrix, 1, function(x) as.formula(paste(c(paste(" ", Series[i], " ~ "), ind.vars[x]), collapse = " + ")))
  )
}

Для каждого индекса / столбца в «Серии» модель выполняет все возможные комбинации переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...