Created
December 18, 2013 13:03
-
-
Save jjallaire/8021940 to your computer and use it in GitHub Desktop.
Shiny Example 03_reactivity
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | |
}) | |
}) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(shiny) | |
# Define UI for dataset viewer application | |
shinyUI(fluidPage( | |
# Application title | |
titlePanel("Reactivity"), | |
# Sidebar with controls to provide a caption, select a dataset, and | |
# specify the number of observations to view. Note that changes made | |
# to the caption in the textInput control are updated in the output | |
# area immediately as you type | |
sidebarLayout( | |
sidebarPanel( | |
textInput("caption", "Caption:", "Data Summary"), | |
selectInput("dataset", "Choose a dataset:", | |
choices = c("rock", "pressure", "cars")), | |
numericInput("obs", "Number of observations to view:", 10) | |
), | |
# Show the caption, a summary of the dataset and an HTML table with | |
# the requested number of observations | |
mainPanel( | |
h3(textOutput("caption")), | |
verbatimTextOutput("summary"), | |
tableOutput("view") | |
) | |
) | |
)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment