闪亮的允许用户选择要显示的列

Jil*_*lum 1 datatable r shiny dt

我不太喜欢Shiny中的数据表功能,我对创建一个可列出数据表的所有列并允许用户选择要在数据表上查看的列的井面板或侧面板感兴趣。

现在,下面的代码显示玩具数据集的所有列 mtcars

library(shiny)

runApp(list(
  ui = basicPage(
    h2('The mtcars data'),
    dataTableOutput('mytable')
  ),
  server = function(input, output) {
    output$mytable = renderDataTable({
      mtcars
    })
  }
))
Run Code Online (Sandbox Code Playgroud)

我有兴趣向用户提供使用复选框打开或关闭这些列的功能

  [1] "mpg"  "cyl"  "disp" "hp"   "drat"
  [6] "wt"   "qsec" "vs"   "am"   "gear"
  [11] "carb"
Run Code Online (Sandbox Code Playgroud)

解决这个问题的任何帮助都非常有用。提前致谢。

Xio*_*Jin 5

这是一个例子。它用于selectInput选择列,并默认显示所有列,直到您选择一个或多个特定列为止。

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]
    })
  }
))
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个例子,很简单。一个问题:如果文件是通过“fileInput”导入到应用程序中怎么办?您将如何引用“ui”端的“selectInput”和服务器端的“columns”中的文件? (2认同)