R Shiny DT - 将pageLength更改为选定的行

时间:2018-05-21 02:09:15

标签: shiny dt

选择DT DataTable的一行时,是否可以隐藏所有其他行 - 然后再次选择行时,这些隐藏的行会再次显示?

调查pageLength选项,可以在运行时由用户操作,它似乎无法通过代理访问:documentation没有提到它。

1 个答案:

答案 0 :(得分:0)

我提供以下解决方案。这是表和操作按钮。选择行并单击按钮后,您可以看到一个弹出窗口,其中包含有关所选行的详细信息。

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)