使用Shiny数据表,可以通过单击相应的表格单元格来选择表格列,然后突出显示所选列。但是如果有太多列,有没有办法只需单击一个按钮来选择所有列并突出显示它们?通过这种方式,可以通过单击相应的单元格来取消选择某些列。
P.S。我当前的解决方案:我创建了一个复选框,指示用户可以反转选择列。选中该复选框后,突出显示的列将从所选集中排除,而不是包含在内。
答案 0 :(得分: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
})
})