如何将renderDataTable的过滤器放在R闪亮的顶部

Posted

技术标签:

【中文标题】如何将renderDataTable的过滤器放在R闪亮的顶部【英文标题】:How to put filter of renderDataTable at the top in R shiny 【发布时间】:2014-05-02 13:36:00 【问题描述】:

我在 R & Shiny 中使用 renderDataTable 来展示我的数据,但过滤器位于表格底部。有没有办法把它放在桌子的顶部?提前致谢!

顺便说一句,在哪里可以找到renderDataTable的选项列表?

  mainPanel(
    tabsetPanel(
      tabPanel("Table",tableOutput("values")),
      tabPanel("Tree Plot",plotOutput("plot")),
      tabPanel("Segment Data",dataTableOutput("obs"))

我不熟悉 CSS,谁能给我一些关于如何在 R 函数中编辑 CSS 的建议?

【问题讨论】:

【参考方案1】:

另一个选项是修改 CSS。用这条线

tags$head(tags$style("tfoot display: table-header-group;"))

你像这样把它放到你的ui.R文件中

,tabPanel("MeSH"          ,tags$head(tags$style("tfoot display: table-header-group;"))
    ,fluidRow( ...

【讨论】:

【参考方案2】:

这个:How to place DataTables column filter on top:可以帮助您处理需要修改的 CSS,以使过滤器位于顶部。

您可以在这里查看:https://github.com/rstudio/shiny-examples/blob/master/012-datatables/server.R:了解如何使用 renderDataTable 选项,您应该能够看到这些选项的设置方式与 jQuery DataTables 的 options list 之间的相关性。

【讨论】:

谢谢!我不熟悉 CSS,我在哪里可以在 R 函数中编辑它? 我无法在我的闪亮页面中复制它。我需要向选项列表传递什么?【参考方案3】:

我对 css 知之甚少,我更喜欢从核心脚本中做尽可能多的事情,这样我就不必担心以后在此处或那里对外观进行更改。所以我在服务器上调用 renderDataTable() 时通过设置“filter = 'top'”来使用以下方法。完全不需要 CSS。

mainPanel("Data",
           dataTableOutput("datatbl")) 

服务器.R

# create data table output
output$datatbl <- DT::renderDataTable(

  #data
  dt2(), rownames = FALSE,

  # column filter on the top
  filter = 'top', server = TRUE,

  # autoWidth
  options = list(autoWidth = TRUE))

请注意,我只使用 renderDataTable() 来调用函数,在函数中使用参数我们不能将其编写为 中的编程代码,我猜。让我知道它是否适合你。

【讨论】:

忘了说,dt2() 只是我在自己的项目中创建的一个响应式对象,您可以使用预加载的数据集进行测试,例如mtcar、iris 等

以上是关于如何将renderDataTable的过滤器放在R闪亮的顶部的主要内容,如果未能解决你的问题,请参考以下文章

在 R Shiny 中使用 DT::renderDataTable 时如何抑制行名?

R Shiny DT::renderDataTable ...如何在下载的表格中自定义标题

将 TableTools 用于 R Shiny 中的 DataTables 用于 renderDataTable

renderTable和renderDataTable之间的R闪亮不同的输出

R Shiny - renderDataTable太慢渲染巨大的矩阵

r Shiny renderdatatable 转置数据帧问题