R Shiny DT - изменить длину страницы для выбранной строки - PullRequest
0 голосов
/ 21 мая 2018

При выборе строки в таблице данных DT можно ли скрыть все остальные строки - затем при повторном выборе строки эти скрытые строки снова становятся видимыми?

Исследование опции pageLength, которая может бытьманипулируемые пользователями во время выполнения, он не доступен через прокси-сервер: документация не упоминает об этом.

1 Ответ

0 голосов
/ 21 мая 2018

Предлагаю следующее решение.Вот таблица и кнопка действия.Когда вы выбираете строку (и) и нажимаете кнопку, вы видите всплывающее окно с подробной информацией о выбранной строке (ах).

library(shiny)
library(DT)

# 1. UI
ui <- fluidPage(
  fluidRow(actionButton("md_data_profile", "Details for selected row")),
  fluidRow(dataTableOutput("dt_data"))
)

# 2. Server
server <- function(input, output) {

  # 1. Data set
  df_data <- reactive({
    mtcars
  })

  # 2. Data table
  output$dt_data <- renderDataTable(
    datatable(df_data()))

  # 3. Details as Popup window
  observeEvent(input$md_data_profile, {

    # 3.1. Get selected rows
    selected_row <- input$dt_data_rows_selected

    # 3.2. Process selected row
    if(!is.null(selected_row)){
      df <- df_data()[selected_row, ]
      popup_str <- paste0("Mpg: ", df$mpg)
    } else {
      popup_str <- "Please, select row to see details"
    }

    # 3.3. Create model dialog window
    showModal(modalDialog(title = "Data profile", HTML(popup_str), easyClose = TRUE))
  })
}

# 3. Application
shinyApp(ui = ui, server = server)
...