R mclappy()在写入全局变量的函数中的应用

R mclappy()在写入全局变量的函数中的应用,r,parallel-processing,lapply,mclapply,R,Parallel Processing,Lapply,Mclapply,我正在尝试使用parallel::mclappy来加速以下代码的计算: library(raster) library(HistogramTools)#for AddHistogram #Create a first h here for the first band... omitted for brevity readNhist <- function(n,mconst) { l <- raster(filename[i], varname=var[i], band=n,

我正在尝试使用
parallel::mclappy
来加速以下代码的计算:

library(raster)  
library(HistogramTools)#for AddHistogram
#Create a first h here for the first band... omitted for brevity
readNhist <- function(n,mconst) {
  l <- raster(filename[i], varname=var[i], band=n, na.rm=T)
  gain(l) <- mconst
  h <<- AddHistograms(h, hist(l, plot=F, breaks=histbreaks,right=FALSE))
}
lapply(   1:10000, readNhist, mconst=1, mc.cores=7  )
#Then do stuff with the h histogram...
库(光栅)
库(HistorogramTools)#用于添加直方图
#在此处为第一个乐队创建第一个h。。。为简洁起见省略

readNhist问题是
问题的根源是在文本中使用
,您在下面提到
mclappy
,但事实上,代码在文本之上。这是一个打字错误还是我遗漏了什么?@RomanLuštrik,我的错,我现在就来解决。输入错误。@Roland,谢谢你的提示,我很快就会讲的。我怀疑你可以自己回答这个问题。
library(raster)  
library(HistogramTools)#for AddHistogram
library(parallel)
#Create a first h here for the first band... omitted for brevity
readNhist <- function(n,mconst) {
  l <- raster(filename[i], varname=var[i], band=n, na.rm=T)
  gain(l) <- mconst
  h <<- AddHistograms(h, hist(l, plot=F, breaks=histbreaks,right=FALSE))
}
mclapply(   2:10000, readNhist, mconst=1  )
#Then do stuff with the h histogram...
readNhist <- function(n,mconst) {
  l <- raster(filename, varname=var, band=n, na.rm=T)
  gain(l) <- mconst
  hist <- hist(l, plot=F, breaks=histbreaks,right=FALSE)
  return(hist)
}
hists <- mclapply(   2:nbands, readNhist, mconst=gain, mc.cores=ncores  )
ch <- AddHistograms(x=hists)
h <- AddHistograms(h, ch)
rm(ch, hists)