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

如何在table1()中添加自定义行/表头及空白行?

用table1包实现自定义标题行、统计行及空白行的方案

1. 添加加粗“共病”标题行与对应变量统计

table1支持通过add参数自定义表格行,结合HTML标签实现无变量关联的加粗标题,同时添加指定变量的TRUE计数行。

假设你的数据框为df,包含逻辑型变量mental_health和substance_use,示例代码如下:

library(table1)

# 定义函数:计算TRUE的数量及占比
count_true <- function(x) {
  n_true <- sum(x, na.rm = TRUE)
  prop <- sprintf("(%.1f%%)", 100 * n_true / length(na.omit(x)))
  paste0(n_true, " ", prop)
}

# 生成包含自定义内容的表格
table1(~ 1, data = df,
       add = list(
         # 加粗的“共病”标题行(跨列显示)
         "<th colspan='2' style='font-weight: bold;'>共病</th>" = "",
         # 心理健康变量的TRUE统计
         "心理健康" = count_true(df$mental_health),
         # 物质使用变量的TRUE统计
         "物质使用" = count_true(df$substance_use)
       ),
       # 隐藏默认的空行(因为我们用add自定义全部内容)
       render.continuous = function(x) NULL,
       render.categorical = function(x) NULL
)

如果需要和原有变量表格合并,只需把~ 1替换成你原本的变量公式(比如~ age + gender),add参数里的内容会追加到原有表格之后。

2. 添加空白行

插入空白行同样通过add参数实现,有两种方式:

方式1:用空字符串生成简单空白行

table1(~ age + gender, data = df,
       add = list(
         # 在共病标题前插入空白行
         "" = "",
         "<th colspan='2' style='font-weight: bold;'>共病</th>" = "",
         "心理健康" = count_true(df$mental_health),
         # 在物质使用行后插入空白行
         "" = "",
         "物质使用" = count_true(df$substance_use)
       )
)

方式2:用HTML标签精准控制跨列空白行

如果需要空白行跨所有列,用HTML的空行标签更可靠:

add = list(
  "<tr><td colspan='2'></td></tr>" = "",
  "<th colspan='2' style='font-weight: bold;'>共病</th>" = "",
  "心理健康" = count_true(df$mental_health),
  "<tr><td colspan='2'></td></tr>" = "",
  "物质使用" = count_true(df$substance_use)
)

核心要点

  • table1支持解析HTML标签,用style='font-weight: bold;'可轻松实现文本加粗;
  • add参数的列表中,键为行显示内容(支持HTML),值为对应列的统计结果;
  • 空白行可灵活插入在表格的任意位置,按需选择简单空字符串或HTML标签实现。

内容的提问来源于stack exchange,提问作者amburguesa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:06:17