Сбой функции R foreach при параллельном выполнении - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь много раз выполнить функцию, используя пакеты foreach и doParallel.

Вот пример функции, которую я построил

loop<-function(x) {IND<-which(data2$id==unique(data1$id)[x]); c(
  id<-as.character(unique(data2[IND,"id"],na.rm=T)),
  var2<-as.numeric(sum(data2[IND,"var2"],na.rm=T)),
  var3<-as.numeric(rapply(data2[IND,"var3"],median,na.rm=T)))

А затем цикл foreach, использующий одно ядро ​​

result <- data.frame(foreach(i = 1:25000, .combine = rbind) %do% loop(i))

Это прекрасно работает.

Поскольку процесс завершается долго, я пытался выполнить его, используя параллельную функцию

cl <- makeCluster(11)
registerDoParallel(cl)
result <- data.frame(foreach(i = 1:25000, .combine = rbind) %dopar% loop(i))
stopCluster(cl)

Эта команда, к сожалению, не работает, и я получаю это сообщение об ошибке:

Error in loop(i) : task 1 failed - "'object' must be a list"

Есть ли у кого-нибудь представление о том, что происходит не так?

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