R Shiny DT - изменить pageLength на выбранную строку

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

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


person Vlad    schedule 21.05.2018    source источник


Ответы (1)


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

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)
person Andrii    schedule 21.05.2018
comment
Это обеспечивает всплывающее окно для выбранной строки. Я хочу скрыть другие строки - цель не в том, чтобы просмотреть дополнительную информацию о выбранной строке, а в том, чтобы скрыть другие строки, чтобы освободить место для других элементов на экране. - person Vlad; 23.05.2018