Funkcja nie znaleziona w R doParallel „foreach” - Błąd w {: zadanie 1 nie powiodło się - „nie można znaleźć funkcji” raster „”

Próbuję użyć klastra o wysokiej wydajności w mojej instytucji po raz pierwszy i natrafiłem na problem, którego nie mogę rozwiązać.

Następujący kod zwraca błąd:

ptime<-system.time({
  r <- foreach(z = 1:length(files),.combine=cbind) %dopar% {
    raster <- raster(paste(folder,files[1],sep=""))
    data<-getValues(raster)
    clp <- na.omit(data)
    for(i in 1:length(classes)){
      results[i,z]<-length(clp[clp==classes[i]])/length(clp)
      print(z)
    }
  }
})

Error in { : task 1 failed - "could not find function "raster""

Próbowałem również innego kodu foreach dla innego zadania, które mam:

r <- foreach (i=1:length(poly)) %dopar% {
  clip<-gIntersection(paths,poly[i,])
  lgth<-gLength(clip)
  vid<-poly@data[i,3]
  path.lgth[i,] <- c(vid,lgth)
  print(i)
}

i tym razem nie znaleziono funkcji gIntersection. Oczywiście pakiety są instalowane i ładowane. Po przeczytaniu niektórych postów na forum wydaje się, że ma to związek ze środowiskiem, w którym funkcje wykonują / działają.

Czy ktoś może pomóc? Nie jestem programistą!

Dziękuję Ci!

Aktualizacja:

Dostosowałem swój kod do dostarczonego rozwiązania:

results<-matrix(nrow=length(classes),ncol=length(files))
dimnames(results)[[1]]<-classes
dimnames(results)[[2]]<-files

ptime<-system.time({
    foreach(z = 1:length(files),.packages="raster") %dopar% {
    raster <- raster(paste(folder,files[z],sep=""))
    data<-getValues(raster)
    clp <- na.omit(data)
    for(i in 1:length(classes)){
      results[i,z]<-length(clp[clp==classes[i]])/length(clp)
      print(z)
    }
  }
})

Ale to, co otrzymuję, to wynik (moja macierz wyników) wypełniony na's. Jak widzisz, tworzę obiekt matrycowy zwany wynikami, aby wypełnić go wynikami (który działa z pętlami for), ale po przeczytaniu dokumentacji dla foreach wydaje się, że zapisujesz swoje wyniki inaczej za pomocą tej funkcji.

I porady na temat tego, co powinienem wybrać dla argumentu .combine?

questionAnswers(1)

yourAnswerToTheQuestion