Разрешить пользователю заполнять список столбцов для отображения на основе checkboxGroupInput - PullRequest
0 голосов
/ 12 июня 2018

@ Пример XiongbingJin на Переполнение стека позволяет пользователю сначала отобразить полный набор данных, а затем изменить столбцы для отображения с checkboxGroupInput.

Я хотел бы помочьчто-то другое:

Что я хочу:

  1. отображение данных начинается с произвольного списка столбцов (например: carb, wt, drat из mtars datset)а не полный набор данных.
  2. Пользователь может заполнить список для отображения с помощью checkboxGroupInput.(например: добавить vs).

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 голосов
/ 12 июня 2018

Как предлагает @Marc P, вы можете просто сосредоточиться на подмножестве names(mtcars), указав его в аргументе selected.Это также имеет то преимущество, что избавляется от случая, когда input$select равно null.

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)
...