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

gtsummary将数值变量识别为分类变量,如何获取变量均值?

解决gtsummary识别数值变量为分类变量的问题

1. 强制变量为连续型,输出均值(SD)

你的数值变量被识别为分类变量,大概率是因为变量是整数类型且取值基数较少。可以通过tbl_summary()的type参数强制指定所有变量为连续型,同时用statistic参数明确输出均值和标准差:

summary_stats <- PRA001 %>%
  select(-ID) %>%
  tbl_summary(
    type = everything() ~ "continuous",  # 强制所有变量为连续型
    statistic = everything() ~ "{mean} ({sd})"  # 指定统计量格式
  ) %>%
  add_stat_label(label = everything() ~ "Mean (SD)")

2. 干预前后时间点的均值对比及差值计算

如果你的数据包含干预前后的分组变量(比如名为time的列,取值为"干预前"/"干预后"),可以通过by参数分组展示均值,再用add_difference()计算组间均值差值:

# 假设数据包含time列,区分干预前后
summary_stats_time <- PRA001 %>%
  select(-ID) %>%
  tbl_summary(
    by = time,  # 按干预前后分组
    type = everything() ~ "continuous",
    statistic = everything() ~ "{mean} ({sd})"
  ) %>%
  add_difference(  # 添加均值差值及置信区间
    type = everything() ~ "continuous",
    statistic = everything() ~ "{diff.mean} ({diff.mean.ci})"
  ) %>%
  add_stat_label(
    label = list(
      everything() ~ "Mean (SD)",
      everything() ~ "Mean Difference (95% CI)"
    )
  )

关键说明

  • type = everything() ~ "continuous":强制gtsummary将所有选中变量按连续变量处理,避免误判为分类变量。
  • statistic参数:自定义统计量的输出格式,确保展示均值和标准差。
  • add_difference():专门用于计算组间连续变量的均值差值,适合干预前后的对比分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:12:34