mirror of
https://github.com/rstudio/shiny.git
synced 2026-02-02 02:34:57 -05:00
54 lines
1.6 KiB
R
54 lines
1.6 KiB
R
library(shiny)
|
|
library(datasets)
|
|
|
|
# Define server logic required to summarize and view the selected
|
|
# dataset
|
|
shinyServer(function(input, output) {
|
|
|
|
# By declaring databaseInput as a reactive expression we ensure
|
|
# that:
|
|
#
|
|
# 1) It is only called when the inputs it depends on changes
|
|
# 2) The computation and result are shared by all the callers
|
|
# (it only executes a single time)
|
|
#
|
|
datasetInput <- reactive({
|
|
switch(input$dataset,
|
|
"rock" = rock,
|
|
"pressure" = pressure,
|
|
"cars" = cars)
|
|
})
|
|
|
|
# The output$caption is computed based on a reactive expression
|
|
# that returns input$caption. When the user changes the
|
|
# "caption" field:
|
|
#
|
|
# 1) This function is automatically called to recompute the
|
|
# output
|
|
# 2) The new caption is pushed back to the browser for
|
|
# re-display
|
|
#
|
|
# Note that because the data-oriented reactive expressions
|
|
# below don't depend on input$caption, those expressions are
|
|
# NOT called when input$caption changes.
|
|
output$caption <- renderText({
|
|
input$caption
|
|
})
|
|
|
|
# The output$summary depends on the datasetInput reactive
|
|
# expression, so will be re-executed whenever datasetInput is
|
|
# invalidated
|
|
# (i.e. whenever the input$dataset changes)
|
|
output$summary <- renderPrint({
|
|
dataset <- datasetInput()
|
|
summary(dataset)
|
|
})
|
|
|
|
# The output$view depends on both the databaseInput reactive
|
|
# expression and input$obs, so will be re-executed whenever
|
|
# input$dataset or input$obs is changed.
|
|
output$view <- renderTable({
|
|
head(datasetInput(), n = input$obs)
|
|
})
|
|
})
|