如何修改gtsummary中modify_spanning_header生成标题下方的线条颜色
修改gtsummary表格跨列标题下方线条样式
以下是来自gtsummary官方教程的示例代码,运行后可生成患者特征汇总表格:
# install.packages("gtsummary") library(gtsummary) trial |> tbl_summary(by = trt, includ = c(age, grade)) |> add_p(pvalue_fun = label_style_pvalue(digits = 2)) |> add_overall() |> add_n() |> modify_header(label ~ "**Variable**") |> modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Received**") |> modify_footnote_header("Median (IQR) or Frequency (%)", columns = all_stat_cols()) |> modify_caption("**Table 1. Patient Characteristics**") |> bold_labels()
运行上述代码生成的表格如下:
技术问题
如何修改“Treatment Received”标题下方的线条样式(例如改为红色)?
(线条位置标注:
)
解决方案
要修改跨列标题下方的线条样式,需借助gt包的自定义样式功能(gtsummary底层基于gt实现),具体操作如下:
- 将gtsummary生成的表格转换为gt对象,再用
gt::tab_style()定位跨列标题并设置边框样式。 - 通过
cells_column_spanners()指定目标跨列标题,cell_borders()定义边框的颜色、粗细等属性。
修改后的完整代码:
# install.packages("gtsummary") # install.packages("gt") library(gtsummary) library(gt) trial |> tbl_summary(by = trt, includ = c(age, grade)) |> add_p(pvalue_fun = label_style_pvalue(digits = 2)) |> add_overall() |> add_n() |> modify_header(label ~ "**Variable**") |> modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Received**") |> modify_footnote_header("Median (IQR) or Frequency (%)", columns = all_stat_cols()) |> modify_caption("**Table 1. Patient Characteristics**") |> bold_labels() |> # 转换为gt对象并设置跨列标题底部边框 as_gt() |> tab_style( style = cell_borders( sides = "bottom", color = "red", weight = px(2) # 可根据需求调整线条粗细 ), location = cells_column_spanners(spanners = "Treatment Received") )
关键说明:
- 需提前安装并加载
gt包,这是进行精细样式调整的前提。 cell_borders()参数说明:sides:指定要修改的边框位置(此处为bottom即底部线条)color:设置边框颜色,支持颜色名称(如"red")或十六进制色值weight:设置线条粗细,单位为像素(px)
cells_column_spanners()中的spanners参数必须与跨列标题文本完全匹配,确保样式应用到正确位置。
内容的提问来源于stack exchange,提问作者TarJae
相关产品推荐
相关产品推荐

