如何将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闪亮不同的输出