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
相关产品推荐
相关产品推荐

