作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是使用并行包的新手,并已开始探索它们以加快我的一些工作。我经常遇到的一个烦恼是 foreach
当我没有时,命令会抛出问题 clusterExport
相关的函数/变量。
例子
我知道下面的例子不一定需要foreach
为了使它更快,但为了说明起见,我将使用它。
library(doParallel)
library(parallel)
library(lubridate)
library(foreach)
cl <- makeCluster(c("localhost", "localhost", "localhost","localhost"), type = "SOCK")
registerDoParallel(cl, cores = 4)
Dates <- sample(c(dates = format(seq(ISOdate(2010,1,1), by='day', length=365), format='%d-%m-%Y')), 500, replace = TRUE)
foreach(i = seq_along(Dates), .combine = rbind) %dopar% dmy(Dates[i])
Error in dmy(Dates[i]) : task 1 failed - "could not find function "dmy""
如您所见,有一个错误提示
dmy
找不到函数。然后我必须继续添加以下内容:
clusterExport(cl, c("dmy"))
所以我的问题是,除了查看错误以获取有关导出内容的线索之外,是否有更优雅的方式预先知道要导出哪些对象,或者是否有一种方法可以在运行
foreach
之前与所有从属共享全局环境?
最佳答案
无需像那样手动导出单个包函数。您可以使用 .packages
foreach
的论据函数来加载所需的包,所以所有的包函数都将可供您使用 %dopar%
表达。
关于r - 事先知道要 clusterExport 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688218/
我写了一个函数,我在其中定义变量和加载对象。这是一个简化版本: fn1 <- function(x) { load("data.RData") # a vector named "data"
我是使用并行包的新手,并已开始探索它们以加快我的一些工作。我经常遇到的一个烦恼是 foreach当我没有时,命令会抛出问题 clusterExport相关的函数/变量。 例子 我知道下面的例子不一定需
我在这里问了一个相关的问题,回复效果很好:using parallel's parLapply: unable to access variables within parallel code 问题是
我是一名优秀的程序员,十分优秀!