Select 具有闪亮数据表的所有列
Select all columns with Shiny datatables
使用 Shiny 数据tables,可以通过单击相应的 table 单元格来 select table 列,然后 selected 列是突出显示。但是万一列太多,有什么方法可以只单击一个按钮 select 所有列并突出显示它们吗?这样,可以通过点击相应的单元格来取消select一些列。
P.S。我当前的解决方案:我制作了一个复选框,指示用户可以反转 select 列。选中该复选框后,突出显示的列将从 selected 集中排除,而不是包括在内。
如果我理解正确的话,这可能是一种方法。
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
})
})
使用 Shiny 数据tables,可以通过单击相应的 table 单元格来 select table 列,然后 selected 列是突出显示。但是万一列太多,有什么方法可以只单击一个按钮 select 所有列并突出显示它们吗?这样,可以通过点击相应的单元格来取消select一些列。
P.S。我当前的解决方案:我制作了一个复选框,指示用户可以反转 select 列。选中该复选框后,突出显示的列将从 selected 集中排除,而不是包括在内。
如果我理解正确的话,这可能是一种方法。
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
})
})