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

时间:2018-10-18 15:40:04

标签: 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")

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


通过在YAML标头中添加df_print: paged,我可以从默认打印行为中获得非常漂亮的分页输出(请参见R Markdown: The Definitive Guide):

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

```{r}
cars
```

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

1 个答案:

答案 0 :(得分:1)

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

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

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