如何在 RMarkdown 中生成带有标题的分页表?

div*_*san 5 r r-markdown kable

我有一个data.frame想要以格式化方式打印在 RMarkdown 文档(HTML 输出)中的文件。我需要它的 3 个功能我无法同时获得:

  1. 它需要在顶部有一个标题或说明文字来解释它是什么。
  2. 由于它可能很长,我希望它可以滚动或分页
  3. 即使表格滚动或分页,标题和列标题也应始终在顶部可见

我可以通过以下方式轻松滚动获得标题kableExtra

library(kableExtra)
cars %>%
    kable(caption = 'Cars') %>%
    kable_styling(bootstrap_options = c('striped', 'condensed')) %>%
    scroll_box(width = "500px", height = "200px")
Run Code Online (Sandbox Code Playgroud)

但是当我向下滚动时,标题和列标题也会滚动,并且很难看到每一列是什么。


通过添加到 YAML 标头,我可以从默认打印行为中df_print: paged获得非常漂亮的分页输出(请参阅R Markdown:权威指南):

---
title: "Motor Trend Car Road Tests"
output:
  html_document:
    df_print: paged
---

```{r}
cars
```
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,没有办法为此添加标题或说明。我可以使用 markdown 添加标题,但生成表格的代码将卡在标题和表格之间。我还缺少其他选项吗?

TC *_*ang 6

我建议尝试DT::datatable,它会在 html 输出中生成高度可配置的表格。

以下代码将创建一个具有固定标题的可滚动表格。

DT::datatable(mtcars, 
         extensions = c('FixedColumns',"FixedHeader"),
          options = list(scrollX = TRUE, 
                         paging=FALSE,
                         fixedHeader=TRUE))
Run Code Online (Sandbox Code Playgroud)