Yes, you can achieve this very easily in the same way as with any other project in RStudio: using the R-mechanisms that provide this:
- Define functions and / or objects in separate files.
- ()
RStudio library(shiny). " " . 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
)
)
})
UI, app.R. tabsetPanel tabPanels. tabPanels (Tabs.R), UI.
Tabs.R :
Tab1 <- tabPanel("First Tab",
selectInput("select",
"Choose one",
choices = letters[1:3],
selected = 'a'))
Tab2 <- tabPanel("Second Tab",
textOutput('mychoice'))
tabPanel tabsetPanel. tabPanel .
myServer.R :
myserver <- function(input,output,session){
output$mychoice <- renderText(
input$select
)
}
, , . R: , .
server(). source(..., local = TRUE), server. . : https://shiny.rstudio.com/articles/scoping.html
(, , ), . (. http://shiny.rstudio.com/articles/modules.html)
, app.R.