Hier habe ich eine Funktion mit dem Namen f()
zum Beispiel, und ich importiere einige Pakete, die ich brauche. Außerdem habe ich eine Funktion namens g()
in f()
definiert. Aber ich finde g()
kann nicht die Funktionen verwenden, die in den Paketen definiert sind, die ich vorher importiere, wenn ich das g parallel machen möchte.Warum kann die Funktion in einer Funktion nicht die Umgebung ihrer Elternfunktion in R während der parallelen Ausführung verwenden
f=function()
{
command 1...
library(pkg1)... # there is a function named t(),for example
library(pkg2)...
g=function(x)
{
t() # function from pkg1
}
library(parallel)
cl <- makeCluster(core,outfile="")
result=parLapply(cl,x,g) # error, the t is not defined
stopCluster(cl)
}