library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("2 buttons, 1 plot"),
sidebarLayout(
sidebarPanel(
actionButton('inDataGen1', 'Generate dataset 1'),
actionButton('inDataGen2', 'Generate dataset 2')
),
mainPanel(plotOutput("plotHist", width = "100%"))
)
))
server <- shinyServer(function(input, output, session) {
# generate random dataset
dataIn1 <- eventReactive(input$inDataGen1, {
rnorm(1000)
})
dataIn2 <- eventReactive(input$inDataGen2, {
rpois(1000, 2)
})
dataInBoth <- reactive({
dm = NULL
if (input$inDataGen1)
dm = dataIn1()
if (input$inDataGen2)
dm = dataIn2()
return(dm)
})
output$plotHist <- renderPlot({
dm = dataInBoth()
if (is.null(dm))
return(NULL)
else
plot(hist(dm))
})
})
shinyApp(ui = ui, server = server)