繁体   English   中英

R Shiny:带有复选框列和滚动条的小表格

[英]R Shiny: small table with checkbox columns and a scrollbar

我正在尝试使用 golem 制作一个 Shiny 应用程序,但我对此很陌生。 这次我只想制作一个带有复选框和滚动条的小表格,但我没有成功......

到目前为止,这是我唯一设法完成的工作(但即使滚动条似乎也没有显示):

mod_saving_side_ui <- function(id){
  ns <- NS(id)
  tagList(
    shinyjs::useShinyjs(),
    shinyalert::useShinyalert(),

    fluidRow(
      DT::DTOutput(ns("my_marker_table"), width = "75%")
    )
 
  )
}


mod_saving_side_server <- function(id, r){
  moduleServer( id, function(input, output, session){
    ns <- session$ns

    output$my_marker_table <- DT::renderDT({
      marker_df <- data.frame(marker=LETTERS, positive="", negative="")
      marker_df$positive[1] <- "y"
      marker_df$negative[2:4] <- "y"
      marker_matrix <- as.matrix(marker_df)
      
      DT::datatable(marker_matrix, options = list(scrollY = TRUE, sDom  = '<"top">rt<"bottom">ip'), rownames = FALSE)
    })
    
  })
}

它产生这个:

测试

但是我想完成三件事:

  1. 有一个滚动条而不是上Previous 1 2 3 Next按钮
  2. 使positivenegative列有每行一个复选框
  3. 为第一行A预选positive复选框,为 2:4 行BCD预选negative复选框

如何使checkboxGroupInput在这里工作并显示滚动条? 谢谢!

这是部分答案,只关注第 1 点。我认为您应该将这篇文章分成几篇,当我们看到要做的事情列表而不是单个问题时,这有点令人沮丧。

此外,您的示例不可重现(我们不能只是复制粘贴您的代码来制作应用程序),所以我制作了一个基本的应用程序。

基本上,我使用参数pageLengthdatatable()底部的“1”、“2”、“3”等按钮。 只有这样做会产生一个很长的表格,所以我使用 CSS 来指定它的高度(这里我放了15em但它是你的选择)并使其可滚动。

library(shiny)
library(DT)

ui <- fluidPage(
  tags$head(
    tags$style(
      HTML(
        "#test {
          height: 15em !important;
          overflow-y: scroll
        }"
      )
    )
  ),
  DTOutput("test")
)

server <- function(input, output, session) {
  
  output$test <- renderDT({
    datatable(iris, options = list(
      pageLength = nrow(iris)
    ))
  })
  
}

shinyApp(ui, server)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM