Мне нужно запустить тысячи моделей с тысячами результатов. Поэтому я выбрал пакеты «foreach» и «doparallel», чтобы увеличить скорость. Для пакетов для анализа моих данных я выбрал два разных пакета: пакет «MASS» и пакет «lqmm». Пакет «MASS» работал хорошо, но пакет «lqmm» всегда выдавал ошибку. Но я думаю, что могут быть способы решения этой проблемы путем редактирования некоторых операторов в функции foreach. Я искал все связанные вопросы в этом аспекте, но все еще застрял. Я надеюсь, что кто-то может помочь мне с этим. Заранее спасибо.
Я пытался добавить ".packages" в функцию foreach.
# read packages
library(foreach)
library(doParallel)
library(Formula)
# Parallel
cl <- makeCluster(5)
registerDoParallel(cl)
results <- foreach (i=1:10,.combine='rbind',.packages=c('lqmm')) %dopar% {
model <- lqmm(((eval(data)[,i] ~ AGE)), random=~1, group=id, data=data)
exposure="AGE"
pvalue=summary(model)$tTable[2.5]
want <- cbind(exposure, pvalue)
}
stopCluster(cl)
Но я все еще получил эту ошибку:
Ошибка в {: задача 1 не выполнена - "объект 'i' не найден"
Я предполагаю, что foreach не понимает меня здесь (то есть, с 1 по 10), но я не знаю, как заставить foreach понимать меня здесь. Это не переменная / объект, это цикл, изменяющийся с 1 на 10.
Может ли кто-нибудь помочь мне с этим? Спасибо.