2016-06-21 180 views
0

下拉菜單我有一個閃亮的複選框,和selectInput下拉菜單。只有當複選框勾選閃亮的應用程序R

如果勾選複選框,則會顯示一個圖形,顯示從下拉菜單中選擇的相關數據。

如果複選框未勾選,則下拉菜單仍然可見,但不顯示該圖。

我該如何改變它,以便下拉菜單直到勾選框時才真正出現?

我的代碼示例到目前爲止是這樣的:

ui <- fluidPage(checkboxInput(inputId = "compare",label="Load new plot?",value=F), 
       dateInput(inputId = "lowerlimit", label="Lower Date",value="2016-01-01"), 
       dateInput(inputId = "upperlimit",label="Upper Date"), 
       selectInput(inputId = "data2",label="Choose data source", choices="FILEPATHS"), 
       plotOutput("plot",dblclick = "plot_dblclick", brush = brushOpts(id="plot_brush",resetOnNew = T))) 

server <- function(input,output,session){ 

    autoInvalidate <- reactiveTimer(300000, session) #new 

    ranges <- reactiveValues(x = NULL, y = NULL) 

    output$plot <- renderPlot({ 
    autoInvalidate() # Load new data every 5 minutes if available. 
    if(input$compare==T){ 
     data2=read.csv(paste0("FILEPATH",input$data2,".csv")) 

     if (!is.null(ranges$x)) { 
     ggplot(data2, aes(Date, Data, group=1))+geom_line()+ 
      scale_x_datetime(limits=c(ranges$x), labels = date_format("%d-%m-%y %H:%M")) 
     } else { 
     ggplot(data2, aes(Date, Data, group=1))+geom_line()+ 
      scale_x_datetime(limits=c(as.POSIXct(input$lowerlimit), as.POSIXct(input$upperlimit)), labels = date_format("%d-%m-%y %H:%M")) 
     } 
    } 
    }) 

    observeEvent(input$plot_dblclick, { 
    brush <- input$plot_brush 
    if (!is.null(brush)) { 
     ranges$x <- c(brush$xmin, brush$xmax) 
     ranges$y <- c(brush$ymin, brush$ymax) 

    } else { 
     ranges$x <- NULL 
     ranges$y <- NULL 
    } 
    }) 

} 

shinyApp(ui=ui, server=server) 
+1

你要麼使用'conditionalPanels'或動態創建使用'uiOutput'下拉 –

回答

1

應該工作

conditionalPanel("input.compare", 
selectInput(inputId = "data2",label="Choose data source", choices="FILEPATHS"))