Как предварительно выбрать ячейки в таблицах данных Shiny DT - PullRequest
0 голосов
/ 30 октября 2019

Есть ли способ предварительного выбора ячеек в блестящих таблицах данных DT вместо строк?

library(shiny)
if (packageVersion('DT') < '0.1.3') devtools::install_github('rstudio/DT')
library(DT)
shinyApp(
  ui = fluidPage(
    fluidRow(
      h1('Client-side processing'),
      DT::dataTableOutput('x1')

    )
  ),
  server = function(input, output, session) {
    output$x1 = DT::renderDataTable(
      iris, server = FALSE,
      selection = list(mode = 'multiple', selected = c(1, 3, 8, 12),target="cell")
    )

  }
)

1 Ответ

1 голос
/ 30 октября 2019

Пожалуйста, обратитесь к руководству GitHub, в котором есть именно то, что вы ищете (в этом и других вопросах, которые вы недавно опубликовали). https://rstudio.github.io/DT/shiny.html

2.1.4 Предварительный выбор

Аргумент выбора datatable () также может включать компонент, выбранный для указания того, какие строки / столбцы / ячейки должны быть предварительно выбраны. когда таблица инициализируется. Когда target = 'row' или 'column', выбранным является вектор индексов строки или столбца. В случае target = 'row + column', выбранным должен быть список из двух компонентов: строки и столбцы, например список (row = c (1, 2, 4, 9), cols = c (1, 3)). Для target = 'cell' это должна быть матрица из двух столбцов: первый столбец - это индексы строк выбранных ячеек, а второй столбец - это индексы столбцов.

Для того, чтобы онвыберите определенную ячейку, вы должны дать ей координаты (строка и столбец).

library(DT)
shinyApp(
  ui = fluidPage(
    fluidRow(
      h1('Client-side processing'),
      DT::dataTableOutput('x1')

    )
  ),
  server = function(input, output, session) {
    output$x1 = DT::renderDataTable(
      iris, server = FALSE,
      selection = list(mode = 'multiple', selected = matrix(c(1, 3, 2, 4), nrow = 2, ncol = 3),target="cell")
    )

  }
)
...