R PickerGroup模块多个选择

时间:2018-08-30 14:45:35

标签: r shiny

我正在尝试寻找一种方法,可以在R Shiny中对数据集进行切片,以根据选择进行进一步处理。

直到现在,我一直都使用常规的选择器和滑块,并使用updateXYZ函数生成要为下一个选择器选择的值。

最近我偶然发现了pickerGroup-module。该模块允许对要素上的数据集进行过滤,在一个模块中完成所有操作,并允许在任何方向上进行过滤(我现在没有预定义的过滤路线)。对于任何方向的过滤,我的意思是例如对类型,子类型,子子类型进行过滤。还要提供子类型,类型和子类型,如果那是特定用户想要过滤的方式。

在pickerGroup模块中,我只能解决一件事,那就是允许它为每个功能选择多个值。开箱即用,它仅选择单个值。有人可以指出正确的方向来使pickerGroup-module允许每个功能具有多个值吗?

1 个答案:

答案 0 :(得分:2)

软件包shinyWidgets中还有一个“选择组”模块,在此模块中,您可以选择多个值,尝试一下:

library(shiny)
library(shinyWidgets)

data("mpg", package = "ggplot2")

ui <- fluidPage(
  fluidRow(
    column(
      width = 10, offset = 1,
      tags$h3("Filter data with selectize group"),
      panel(
        selectizeGroupUI(
          id = "my-filters",
          params = list(
            manufacturer = list(inputId = "manufacturer", title = "Manufacturer:"),
            model = list(inputId = "model", title = "Model:"),
            trans = list(inputId = "trans", title = "Trans:"),
            class = list(inputId = "class", title = "Class:")
          )
        ), status = "primary"
      ),
      dataTableOutput(outputId = "table")
    )
  )
)

server <- function(input, output, session) {
  res_mod <- callModule(
    module = selectizeGroupServer,
    id = "my-filters",
    data = mpg,
    vars = c("manufacturer", "model", "trans", "class")
  )
  output$table <- renderDataTable(res_mod())
}

shinyApp(ui, server)