我目前正在开发一个名为“package_name”(这是我的要求)的 Golem Shiny 应用程序,我创建的一些函数需要使用{furrr}
和{future}
包中的函数。但是,每当我尝试运行它们时,都会出现以下错误:
错误:没有名为“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()
})
})
干杯,科林