R Блестящая фильтрация - PullRequest
0 голосов
/ 01 марта 2019

Чего я хочу добиться, чтобы пользователь мог гибко отключать / включать фильтры 2-го уровня id2 («Ресурс») и id3 («Дело»):

  1. id2('Resource') и id3('Case') включены:программа показывает соответствующий результат на основе фильтров id1, id2 и id3
  2. id2('Resource') и id3('Case') отключены: программа ТОЛЬКО показывает уровень 1 фильтрованный результат id1 ('ThrouputTime').

Я реализую (pheusdo) код ниже, программа будет извлекать результат на основе этих 3, отфильтрованных в SAMETIME, но не может достичь 2-й ситуации, упомянутой выше.Любое предложение?

ui <- dashboardPage(
    dashboardBody(
        tabItems(
                tabItem(tabName = "dashboard",
            fluidRow(
                        box(
                            title = "ThrouputTime",
                            width = 3,
                            sliderInput(inputId="id1", label="ThrouputTime", ...)
                           )    
                ),      
            fluidRow(
                        box(
                            title = "Resource",
                            width = 3,
                            selectInput(inputId="id2", label="resource", ...)
                           ),
                box(
                            title = "Case",
                            width = 3,
                            selectInput(inputId="id3", label="case", ...)
                           )
                )
            )
              )
           )



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

  observe({
    output$process <- renderProcessanimater(expr = {

      filtered_event <- newevent %>%
        filter_throughput_time(interval = c(input$throughput[1], input$throughput[2])) %>%
        filter_resource(input$id2)  %>%                 
        filter_case(input$id3, reverse = F)                   

        #.... generate a workflow graph based on 'filtered_event' from above    
    })
  })
}

graph <- shinyApp(ui, server)
runApp(graph, host = "0.0.0.0", port = 5050)
...