在 Golem Shiny 应用程序中使用 {future} 和 {furrr} 函数时出现错误,它来自什么?

I get an error when using {future} and {furrr} functions within a Golem Shiny App, what does it come from?

我目前正在开发一个名为“package_name”的 Golem Shiny App(这对我来说是一个要求),为此我创建的一些函数需要使用 {furrr}{future} 包。 但是,每当我尝试 运行 它们时,我都会收到以下错误:

Error : there is no package called 'package_name'

请注意,任何不使用任何一个包的函数都可以正常工作。

有人知道问题出在哪里吗?

谢谢!

使用 {golem} 构建应用程序时,您的计算机上未安装应用程序包。 当您使用 {future} 时,代码是 运行 在 另一个 R 会话 中,这意味着对象被传输并重新加载库。

但是,如果您尝试在未来的应用中使用当前应用中的某个功能,则需要使其“可移植”,并且使用 package_name::function() 将不起作用,因为您的软件包未安装。

假设您需要使用包内定义的 current_app_fun()。 从技术上讲,{future} 将能够传输此功能,因为它使用 {globals} 来标识要传输到新 R 会话的对象。

observeEvent( input$bla , {
  # future() will identify that it needs to
  # transport current_app_fun()
  future({
    current_app_fun()
  })
})

你也可以做一个额外的步骤来格外小心:

observeEvent( input$bla , {
  func_for_future <- current_app_fun
  future({
    func_for_future()
  })
})

干杯, 科林