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

求助:gtsummary数据汇总的子集筛选、数值替换等问题解决

针对gtsummary数据汇总需求的解决方法

1. 正确筛选housing分组,移除100k以上的行

直接在原始数据层面先过滤,再传入gtsummary,避免表格生成后残留空行/0值:

# 假设数据集名为df
filtered_df <- df %>% filter(housing %in% c("12k-25k", "25k-100k"))
# 基于过滤后的数据生成汇总表
tbl <- filtered_df %>% tbl_summary(...)

如果已经生成汇总表,也可以直接修改表格主体移除目标行:

tbl <- tbl %>% 
  modify_table_body(
    filter(!housing %in% "100k以上") # 替换为你实际的100k以上分组名称
  )

2. 精准替换0为'-'、小于10的数值为'<10'

不要用字符串替换函数(如gsub),直接针对数值做逻辑判断,用modify_fmt_fun自定义格式化规则:

# 定义格式化函数
custom_fmt <- function(x) {
  case_when(
    x == 0 ~ "-",
    x < 10 ~ "<10",
    TRUE ~ as.character(x)
  )
}

# 将函数应用到汇总表的统计列(可指定特定列,或所有统计列)
tbl <- tbl %>%
  modify_fmt_fun(
    all_stat_cols() ~ custom_fmt
  )

3. 移除自动生成的百分比

在tbl_summary初始化时直接关闭百分比显示:

tbl <- filtered_df %>%
  tbl_summary(
    # 对所有分类变量关闭百分比
    percent = "none",
    # 或针对特定变量自定义统计量,仅保留计数
    statistic = list(all_categorical() ~ "{n}")
  )

如果已生成表格,也可通过修改样式移除百分比列:

tbl <- tbl %>%
  modify_table_styling(
    columns = all_stat_cols() %>% contains("percent"),
    hide = TRUE
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:06:02