我正在使用闪亮的方式构建交互式仪表板。我想在与第一列相关的任何特定时间仅选择单个特定单元格。
当我通过https://rstudio.github.io/DT/shiny.html时,我无法找到所需的信息。有没有办法做到这一点??
答案 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。如果您有兴趣看到替代解决方案,请与我们联系。