允许用户根据checkboxGroupInput

时间:2018-06-12 14:24:17

标签: r datatable shiny

@ XiongbingJin在Stack Overflow上的示例允许用户首先显示完整数据集,然后使用checkboxGroupInput更改要显示的列。

我希望得到一些不同的帮助:

我想要的是什么:

  1. 数据表显示以列的任意列表开头(例如:carbwtdrat mtars datset),而不是完整数据集。
  2. 用户可以使用checkboxGroupInput完成要显示的列表。 (例如:添加vs)。
  3. enter image description here

    @XiongbingJin例子:

     library(shiny)
     runApp(list(
     ui = basicPage(
     selectInput("select", "Select columns to display", names(mtcars), multiple = 
     TRUE),
     h2('The mtcars data'),
      dataTableOutput('mytable')
    ),
     server = function(input, output) {
     output$mytable = renderDataTable({
      columns = names(mtcars)
      if (!is.null(input$select)) {
        columns = input$select
      }
      mtcars[,columns,drop=FALSE]
     })
     }
    ))
    

1 个答案:

答案 0 :(得分:1)

正如@Marc P所建议的那样,您可以通过将其提供给names(mtcars)参数来专注于selected的子集。这也有利于摆脱input$selectnull的情况。

library(shiny)

ui = basicPage(
  selectInput("select", "Select columns to display", 
              names(mtcars),
              selected = names(mtcars)[c(1, 3)], # display 1st and 3rd variables 
              multiple = TRUE),
  h2('The mtcars data'),
  dataTableOutput('mytable')
)

server = function(input, output) {
  output$mytable = renderDataTable({
    mtcars[, input$select, drop=FALSE]
  })
}

shinyApp(ui, server)