global.R don';开始

global.R don';开始,r,shiny,R,Shiny,我想知道为什么当我从Rstudio启动我的应用程序时,global.R没有启动。 据我所知,在启动我的应用程序时,global.R必须运行一次,但是Rstudio给了我一个错误,它找不到我在global.R文件中定义的函数。 在用ctl+alt+R手动运行global.R之后,我可以启动我的应用程序,它可以识别功能,并且在我使用R会话期间运行良好。我不是在网上发表,只是在本地工作。 我错过什么了吗? 谢谢。(R版本3.5.2和1.2) 只有当闪亮的应用程序由server.R和ui.R组成时,gl

我想知道为什么当我从Rstudio启动我的应用程序时,global.R没有启动。 据我所知,在启动我的应用程序时,global.R必须运行一次,但是Rstudio给了我一个错误,它找不到我在global.R文件中定义的函数。 在用ctl+alt+R手动运行global.R之后,我可以启动我的应用程序,它可以识别功能,并且在我使用R会话期间运行良好。我不是在网上发表,只是在本地工作。 我错过什么了吗? 谢谢。

(R版本3.5.2和1.2)

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

server.R
ui.R
中拆分
app.R

解决您的问题。

由于OP询问了架构仅依赖单个
app.R
时为什么不读取
global.R
,这是因为应用程序是如何启动的

如果通过以下方式启动:

shinyApp(ui = ui, server = server)
然后应用程序考虑这两个函数,而不事先运行任何操作,即忽略
global.R
内容。但是,
onStart
参数可以提供给
shinyApp
,以便在应用程序启动之前运行一些东西,其描述解决了大量的混乱:

onStart:在应用程序实际运行之前调用的函数。这仅适用于shinyAppObj,因为在shinyAppDir案例中,可以使用global.R文件来实现这一目的

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

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

  • 修改
    onStart
    调用中的
    shinyApp
    参数
  • Source
    global.R
    as@tic toc choc

是否与
server.R
ui.R
位于同一文件夹中?是否。但是我使用的是app.R而不是server.R和ui.R。你可以
source(“global.R”)
来解决这个问题,作为
app.R
中的第一行代码之一。是的,这就是我所做的,它可以工作,但我想知道为什么它不能单独启动!这与Shinny的入门非常混淆,他们说:注意:在版本0.10.2之前,Shinny不支持单文件应用程序,ui对象和服务器功能需要分别包含在名为ui.R和server.R的单独脚本中。此功能在Shining中仍然受支持。。。事实上,据说我们必须更好地使用应用程序,而不是服务器和用户界面,因为前者仍然受支持!!!但是有多少次?但global.R不会随应用程序自动启动。你说得对!谢谢