双文件式Shiny应用
在版本0.10.2之前,Shiny应用需要两个独立文件:server.R和ui.R,这两个文件分别包含了构成UI和server模块的代码。这种形式在后来的版本中依然是可用的。
样例
要创建一个双文件式应用,首先需要创建一个新的目录(以"newdir/"为例),然后在这个目录下创建两个文件,分别叫:ui.R和server.R
~/newdir
|-- ui.R
|-- server.R
使用:runApp("newdir")来运行程序
ui.R
我们在ui.R中定义ui界面信息:
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("obs", "Number of observations:", min = 10, max = 500, value = 100)
),
mainPanel(plotOutput("distPlot"))
)
)
server.R
我们在server.R中定义server功能信息:
server <- function(input, output) {
output$distPlot <- renderPlot({
hist(rnorm(input$obs), col = 'darkgray', border = 'white')
})
}
对于以这种方式创建的应用,server.R文件必须返回server函数,ui.R文件必须返回UI对象(本例中的UI对象由fluidPage()生成)。换言之,如果这两个文件里包含其他内容的代码(如工具函数),你必须保证代码最后的语句是server函数或者UI对象。
如果你的应用体量较大,双文件这种形式会使项目管理更轻松一些。