如何在RMarkdown HTML表格滚动时固定行名及指定行列?
RMarkdown HTML表格实现Excel式冻结行列
问题1:滚动列时保留行名
rmarkdown::paged_table确实没有冻结行名的功能,换用以下两个工具就能解决:
- DT包:直接开启固定首列(行名列)和横向滚动:
library(DT) datatable(mtcars, rownames = TRUE, options = list( fixedColumns = TRUE, scrollX = TRUE )) - flextable:用
freeze()固定行名所在的第一列:library(flextable) flextable(mtcars, rownames = TRUE) %>% freeze(j = 1) %>% set_table_properties(layout = "autofit", width = 1, scroll = TRUE)
问题2:自定义固定行/列
这两个工具都支持灵活指定要固定的行列:
- DT包:通过
fixedColumns参数指定固定的左右列数,开启纵向滚动可自动固定表头:datatable(mtcars, options = list( fixedColumns = list(leftColumns = 2, rightColumns = 0), # 固定左侧2列 scrollX = TRUE, scrollY = "400px" # 纵向滚动时表头自动固定 )) - flextable:分别用
freeze()和freeze_rows()固定列和行:flextable(mtcars) %>% freeze(j = 1:2) %>% # 固定前2列 freeze_rows(i = 1) %>% # 固定表头行 set_table_properties(layout = "autofit", width = 1, scroll = TRUE)
关于你提到的工具补充说明
knitr::kable()是轻量级表格输出,没有原生冻结功能,就算配合kableExtra的scroll_box()也只能实现滚动容器,没法单独固定行列,实用性不如上面两个工具。rmarkdown::paged_table主打分页展示逻辑,确实没有滚动固定的配置项,你并没有遗漏设置。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

