[我有兴趣了解更多有关furrr
如何从全球环境中找到东西的知识,并普遍询问其执行的black magic。这是我不了解的行为的特定示例,可以使用一些帮助:在future_map
调用或get
调用中需要更改什么以返回"C"
和"F"
?
# load furrr, describe "plan"
library(furrr)
nc<-2
plan(strategy = multiprocess, workers = nc)
# create objects
a<-list("A", "B", "C")
b<-list("D", "E", "F")
#works fine
future_map(1:5, function(foo){
map(c("a", "b"), function(my_object_name){
bar<-my_object_name
print(bar)
})
})
# object 'a' not found
future_map(1:5, function(foo){
map(c("a", "b"), function(my_object_name){
bar<-get(my_object_name)[[3]]
print(bar)
})
})
编辑
似乎此问题并非在所有系统上都可再现,可能与我安装furrr.
有关。尽管该软件包提供了有关多核计划的警告,但这是multiprocess
和multisession
的问题,但不是[ C0]。
正是plan(strategy=multicore,...
造成了问题。将envir
指定为全局环境以查找该对象,然后指定envir
print