求助:如何通过gtsummary实现表格内容的三级缩进?
gtsummary三级缩进实现方案
方法1:自定义CSS缩进样式(推荐)
gtsummary默认的add_indent()仅支持一级缩进,要实现三级缩进,可通过给目标行设置自定义CSS缩进值:
library(gtsummary) library(gt) # 替换为你的表格对象 your_tbl <- your_data %>% tbl_summary() %>% # 先给二级缩进行添加默认缩进 add_indent(rows = label == "Bronchiolitis/pneumonitis") %>% # 给三级缩进行设置更大的缩进距离(一级缩进通常为2em,三级可设为4em) modify_table_styling( rows = label == "Hours Pre-arrest: +COVID-19", columns = label, css = "text-indent: 4em;" )
方法2:用非断空格替代普通空格
普通空格会被自动修剪,改用HTML非断空格 手动添加缩进,需将表格转为gt对象解析HTML:
your_tbl <- your_data %>% tbl_summary() %>% # 给目标标签添加4个非断空格(对应三级缩进) modify_fmt_fun( columns = label, rows = label == "Hours Pre-arrest: +COVID-19", fmt_fun = function(x) paste0(" ", x) ) %>% as_gt() %>% fmt_markdown(columns = label) # 解析标签中的HTML格式
方法3:全局主题自定义缩进
若需全局应用多级缩进规则,可修改gtsummary主题:
set_gtsummary_theme( theme = list( # 一级缩进默认值 add_indent.text_indent = "2em", # 定义三级缩进的CSS类 table_styling.css_text = ".level3-indent { text-indent: 4em !important; }" ) ) # 给目标行应用三级缩进类 your_tbl <- your_data %>% tbl_summary() %>% modify_table_styling( rows = label == "Hours Pre-arrest: +COVID-19", columns = label, classes = "level3-indent" )
注:请根据实际表格结构替换代码中的行筛选条件(如label == "xxx"),缩进的em值可按需调整。
内容的提问来源于stack exchange,提问作者cooperkk
相关产品推荐
相关产品推荐

