You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何通过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非断空格&nbsp;手动添加缩进,需将表格转为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("&nbsp;&nbsp;&nbsp;&nbsp;", 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:20:18