Выбрать все столбцы с блестящими таблицами данных
С помощью блестящих таблиц данных можно выбрать столбцы таблицы, щелкнув соответствующие ячейки таблицы, после чего выделенные столбцы будут выделены. Но если столбцов слишком много, можно ли просто нажать кнопку, чтобы выбрать все столбцы и выделить их? Таким образом, можно отменить выбор некоторых столбцов, щелкнув соответствующие ячейки.
PS мое текущее решение: я установил флажок, указывающий, что пользователь может инвертировать выбранные столбцы. Если этот флажок установлен, выделенные столбцы будут исключены из выбранного набора, а не включены.
1 ответ
Решение
Если я правильно вас понял, это может быть способом сделать это.
ui.R
library(shiny)
library(DT)
shinyUI(fluidPage(
titlePanel("Column Selection"),
fluidRow(
actionButton("selectCols", "Select all columns"),
DT::dataTableOutput('tbl'),
verbatimTextOutput("selectedColums")
)
))
server.R
library(shiny)
library(DT)
shinyServer(function(input, output) {
irisTable <- reactive({
if (input$selectCols > 0) {
datatable(iris, selection = list(target = 'column', selected = c(0,1,2,3,4,5)))
} else {
datatable(iris, selection = list(target = 'column'))
}
})
output$tbl = DT::renderDataTable(
irisTable())
output$selectedColums <- renderPrint({
input$tbl_columns_selected
})
})