global.R不要开始

时间:2019-02-27 21:10:43

标签: r shiny rstudio

我想知道为什么当我从Rstudio启动我的应用程序时,global.R无法启动。 据我了解,似乎在启动我的应用程序时必须运行一次global.R,但是Rstudio却给我一个错误,它找不到在global.R文件中定义的函数。 在使用ctl + alt + r手动运行global.R之后,我可以启动我的应用程序,它可以识别该功能,并且在我使用R会话的过程中都能正常运行。我不是在网络上发布,而是在本地发布。 我错过了什么吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

(R版本3.5.2和有光泽的1.2)

仅当闪亮的应用程序由global.Rserver.R组成时,ui.R的内容才可用。如果应用程序由唯一的global.R文件组成,则app.R的内容将被忽略

app.Rserver.R中拆分ui.R 解决您的问题。

答案 1 :(得分:0)

既然 OP 询问为什么在架构仅依赖单个 global.R 时不读取 app.R,这是因为应用程序的启动方式。

如果是通过以下方式启动的:

shinyApp(ui = ui, server = server)

然后应用程序在没有预先运行任何东西的情况下考虑这两个函数,即忽略 global.R 内容。但是,可以将 onStart 参数提供给 shinyApp 以在应用程序启动之前运行某些内容,它的描述解决了很多混乱:

<块引用>

onStart:在应用实际运行之前将被调用的函数。这仅适用于 ShinyAppObj,因为在 ShinyAppDir 的情况下,一个 global.R 文件可用于此目的。

在我看来,当应用程序拆分为 server.Rui.R 时,global.R 会通过通过 shinyAppDir 运行应用程序自动包含在内。

如果有人想严格使用单个 app.R 代码文件并在启动应用程序之前执行一些例程,我找到的解决方案是:

  • onStart 调用中修改 shinyApp 参数
  • 来源 global.R 为 @tic-toc-choc points out