【问题标题】:R Shiny DT - change pageLength to selected rowR Shiny DT - 将 pageLength 更改为选定的行
【发布时间】:2023-03-22 17:43:01
【问题描述】:

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

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

【问题讨论】:

    标签: shiny dt


    【解决方案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)
    

    【讨论】:

    • 这为选定的行提供了一个弹出窗口。我希望隐藏其他行 - 目的不是查看有关所选行的更多信息,而是隐藏其他行以便为屏幕上的其他元素腾出空间。
    猜你喜欢
    • 1970-01-01
    • 2021-09-01
    • 2018-03-04
    • 2020-12-13
    • 2021-01-16
    • 2015-09-13
    • 1970-01-01
    • 2019-07-17
    • 2020-04-14
    相关资源
    最近更新 更多