首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >furrr没有找到自己的包

furrr没有找到自己的包
EN

Stack Overflow用户
提问于 2019-03-03 20:41:35
回答 1查看 557关注 0票数 5

我目前正在开发一个包,比方说它叫做myPack。我有一个名为myFunc1的函数和另一个名为myFunc2的函数,如下所示:

代码语言:javascript
复制
myFunc2 <- function(x, parallel = FALSE) { 
if(parallel) future::plan(future::multiprocess)
values <- furrr::future_map(x, myFunc1)
values
}

现在,如果我在不并行的情况下调用myFunc2,它就可以工作。但是,如果我在parallel = TRUE的情况下调用它,我会得到以下错误:

代码语言:javascript
复制
Error: Unexpected result (of class ‘snow-try-error’ != ‘FutureResult’)
retrieved for MultisessionFuture future (label = ‘<none>’, expression = 
‘{; do.call(function(...) {; ...future.f.env <- environment(...future.f); 
if (!is.null(...future.f.env$`~`)) {; if 
(is_bad_rlang_tilde(...future.f.env$`~`)) {; ...future.f.env$`~` <- 
base::`~`; ...; }); }, args = future.call.arguments); }’): there is no 
package called 'myPack'. This suggests that the communication with 
MultisessionFuture worker (‘SOCKnode’ #1) is out of sync.

有谁知道为什么myFunc2以顺序模式工作,而不是并行模式,以及我如何才能阻止这个错误出现?

可重现的例子:

代码语言:javascript
复制
linear_model_1 <- lm(mpg ~ cyl + disp + hp, data = mtcars)
linear_model_2 <- lm(mpg ~ cyl + poly(disp, 2), data = mtcars)
x <- list(linear_model_1, linear_model_2)


myFunc1 <- function(model, seed, size) {
  `%>%` <- purrr::`%>%`
  set.seed(seed)
  draws <- rep(size, 10) %>% 
    furrr::future_map(sample, x = fitted(model), replace = TRUE)
  mean(unlist(draws))
}

(注意:这不是整个函数,但它基本上是它在缩短版本中所做的事情)

EN

回答 1

Stack Overflow用户

发布于 2020-07-28 10:01:58

我在这里也遇到过同样的情况。您必须使用devtools: install ()至少安装一次包。这一点在这一期中有记录:https://github.com/DavisVaughan/furrr/issues/95

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54968901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档