Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在RStudio中将闪亮的应用程序代码拆分为多个文件?_R_Shiny_Rstudio - Fatal编程技术网

如何在RStudio中将闪亮的应用程序代码拆分为多个文件?

如何在RStudio中将闪亮的应用程序代码拆分为多个文件?,r,shiny,rstudio,R,Shiny,Rstudio,我试图将闪亮应用程序的代码拆分为不同的文件,但无法在闪亮应用程序中正常工作。我的尝试可以找到 我如何将代码拆分为不同的文件,但仍然保留“运行应用程序”按钮,并将“代码完成”返回到RStudio 如果不是!我可以将shiny与Visual Studio集成吗?是的,您可以非常轻松地实现这一点,方法与RStudio中的其他每个项目相同:使用提供的R机制实现这一点: 在单独的文件中定义函数和/或对象 在主文件中使用source()加载它们的定义 仅当使用library(shinny)加载shinn

我试图将闪亮应用程序的代码拆分为不同的文件,但无法在闪亮应用程序中正常工作。我的尝试可以找到

我如何将代码拆分为不同的文件,但仍然保留“运行应用程序”按钮,并将“代码完成”返回到RStudio


如果不是!我可以将shiny与Visual Studio集成吗?

是的,您可以非常轻松地实现这一点,方法与RStudio中的其他每个项目相同:使用提供的R机制实现这一点:

  • 在单独的文件中定义函数和/或对象
  • 在主文件中使用source()加载它们的定义

仅当使用library(shinny)加载shinny包时,shinny函数的代码完成才会在RStudio中发生。对于应用程序中的主文件,“运行应用程序”按钮将可见。在下面的示例中,这将是app.R文件。因此,如果您想在RStudio中运行应用程序,您必须始终返回主文件

标准示例 例如:

在app.R文件中,您将:

library(shiny)
source('myUI.R', local = TRUE)
source('myServer.R')


shinyApp(
  ui = myUI,
  server = myserver
)
此代码除了启动对象
myUI
myserver
并调用应用程序外,没有其他功能

文件myUI.R包含

source('Tabs.R')
myUI <- shinyUI({
  fluidPage(
    tabsetPanel(
      Tab1,
      Tab2
    )
  )
})
此文件创建要添加到tabsetPanel的tabPanel对象。在我自己的代码中,我将每个选项卡面板定义存储在一个单独的文件中

文件myServer.R包含:

Tab1 <- tabPanel("First Tab",
                 selectInput("select",
                             "Choose one",
                             choices = letters[1:3],
                             selected = 'a'))

Tab2 <- tabPanel("Second Tab",
                 textOutput('mychoice'))
myserver <- function(input,output,session){
  output$mychoice <- renderText(
    input$select
  )
}

myserver@jorismeys的回答涵盖了将闪亮的代码拆分成文件的主题。尽管问题的一部分是使用
运行应用程序
按钮,但即使组织制作了有效的应用程序,该按钮也可能不可用

如果您搜索此问题,您可以找到,然后按照在该问题中作出的承诺,您可以找到,并且:

基本上,任何文件夹都有
ui.R
server.R
app.R
global.R
www
文件夹将被视为闪亮的文件夹(详细情况更复杂,请参见源代码),然后上述4个文件将有
运行app
按钮


我注意到的一件事是,通常你可以保持应用程序运行,进行一些更改,然后
重新加载应用程序
以查看更改,但是如果你源于其他文件,
重新加载应用程序
按钮将不会重新加载源文件中的更改。

不清楚你到底做了什么。如果能提供一些可复制的示例,让我们了解一下您的代码现在是什么样子,那将是很有帮助的。它不清楚,也不是真正的编程问题。因此,我对它进行了重新表述,因为这个问题本身就是一个编程问题,我自己也被问过多次。Shiny在Visual Studio中工作得很好,但实际上它并不能更好地解决这个问题。@JoriMeys英语不是我的第一语言,所以请原谅我的错误+非常感谢你重写了我的问题和你的建议answer@MikeWise谢谢你的信息。。我爱vs!要获取所需的
local=TRUE
,请转到
source
文件。请看@dracodoc好的观点,谢谢你指出这一点(我太懒了)。如果你这样做是没有必要的,但是如果你在服务器功能中使用源代码的话,它就变得很重要了。我一直在寻找的“你必须回到主文件”。。。。非常感谢,不一定是“主文件”
ui.R
server.R
global.R
app.R
都可以有这个按钮。我知道,但为什么它不会出现在我分割的文件中,因为Shining不支持它!这就是我所理解的!