Flex 仪表板中的过滤器和子过滤器

问题描述 投票:0回答:1

我正在尝试拥有一个输入列,您可以在其中选择多个过滤器。

然后根据这些输入,我想在我的 Flex 仪表板中添加子过滤器。

例如,如果我有一个包含以下列的数据库:状态、数字、年份、汽车制造商 我想选择州和汽车制造商 然后有两个子过滤器,我可以在其中选择我想要的州和汽车标记。

我很难在我的仪表板和代码中创建这些子过滤器。

过滤器 - 有选项:州、数字、年份、汽车制造商 您可以选择多个过滤器

子过滤器

data.choices1 <- reactive({
  ifelse(any(input$filter == colnames(data))){
    unique(pol_data$sub_filter)
  } else { 
    unique(veh_data$sub_filter)
}
  })



renderUI({selectInput("sub_filter", label = "Select how to Filter in Columns",
                      choices = sort(data.choices1()), multiple = TRUE )})

我尝试过函数,我尝试过if函数。我很难将过滤器输入粘贴到我的子过滤器中。 在我的仪表板中,当我选择过滤器时,我的子过滤器不会填充。

我尝试了函数和 case_when 函数,方法是尝试选择一个列号,然后我可以关闭该列号,但我无法使其工作。

我尝试将所有内容包装在反应函数中,但这不起作用。

r filter user-input flexdashboard
1个回答
0
投票
data.choices1 <-  reactive({
  if(input$filter[1] %in% colnames(pol_data)){ 
    unique(pol_data[,input$filter[1]])
  } else {
    unique(veh_data[,input$filter[1]])
  }
})

将我的 data.choices1 更新为上述内容现在可以让我从每个过滤器中选择子过滤器。但是,如果没有选择过滤器,我确实会收到错误,我现在正在处理这个问题

© www.soinside.com 2019 - 2024. All rights reserved.