用电缆或DT将表头固定在顶部

时间:2018-07-26 10:05:37

标签: r r-markdown dt kable

我正在尝试在HTML输出中包括一个垂直可滚动的表格。桌子看起来很漂亮,但是我想将标题固定在顶部(现在它像其他所有东西一样向上滚动)。加号功能还可以过滤列或与列进行交互(例如排序)。

我尝试同时使用kable()+ kableExtra()和DT()。我的理解是,使用DT会更容易,但是我发现文档非常混乱。

我正在做这样的事情:

library(datasets)
library(knitr)
library(kableExtra)
library(DT)

data(iris)

# with kable
kable(iris, "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "responsive"), 
                full_width = F) %>%
  scroll_box(width = "100%", height = "400px")

# with DT
datatable(showData, options = list("scrollY"))

我真的找不到在顶部固定标题或添加过滤器的方法。有提示吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将自定义CSS与kable结合使用,以创建具有固定标题的可滚动表格主体。

例如,在项目目录中创建具有以下内容的文件 styles.css

.table-fixed-header tbody{
  display:block;
  overflow:auto;
  height:400px;
  width:100%;
}
.table-fixed-header thead tr{
  display:table-header-group;
  height:100%;
}

在.Rmd文档的YAML中,请参考styles.css:

output: 
html_document:
    css: styles.css

在R代码块中,将样式名称传递给kable()函数

kable(iris, escape = F, table.attr='class="table-fixed-header"') %>%
  kable_styling()