如何从闪亮的数据框中仅选择与特定列相关的单元格

时间:2016-08-09 11:00:13

标签: r shiny

我正在使用闪亮的方式构建交互式仪表板。我想在与第一列相关的任何特定时间仅选择单个特定单元格。

当我通过https://rstudio.github.io/DT/shiny.html时,我无法找到所需的信息。有没有办法做到这一点??

1 个答案:

答案 0 :(得分:0)

这是一款闪亮的应用程序,展示了如何操作:

ui.R

library(shiny)
    library(shinydashboard)

    library(DT)
    header <- dashboardHeader()
    sidebar <- dashboardSidebar(
            selectInput("rowNumber", "Select row number", choices = 1:NROW(mtcars)),
            selectInput("colNumber", "Select column number", choices = 1:NCOL(mtcars))
    )
    body <- dashboardBody(
            DT::dataTableOutput("mtcarsTable")
    )

    shinyUI(fluidPage(

      # Application title
      titlePanel("Data Table"),
      dashboardPage(header, sidebar, body)


    ))

server.R

    library(shiny)
    library(shinydashboard)


    # Define server logic required to draw a histogram
    shinyServer(function(input, output) {
            output$mtcarsTable <- renderDataTable({
                    a <- 200
                    DT::datatable(datasets::mtcars, 
                                  selection = list(target = "cell", 
                                                   selected = matrix(c(as.numeric(input$rowNumber), 
                                                                       as.numeric(input$colNumber)), 
                                                                     nrow = 1))
                                  )
    })

    })

此解决方案的缺点是,如果用户单击所选单元格,则删除选择。 一种可能的替代方法是更改​​单元格背景颜色,但这需要在rowcallback中使用一段javascript。如果您有兴趣看到替代解决方案,请与我们联系。