Я пытаюсь много раз выполнить функцию, используя пакеты 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"
Есть ли у кого-нибудь представление о том, что происходит не так?