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

R语言tbl_summary()未显示Yes/No变量水平问题求助

问题原因

tbl_summary()分组汇总时g变量不显示Yes/No水平,是两个默认逻辑导致的:

  • 函数会自动把仅含2个取值的字符型变量识别为二分类(dichotomous)变量,这类变量默认只展示1个取值,不会展开全部水平
  • g没有提前转成因子指定固定水平,加上分组后组内取值完全无变异(output=0组全是Yes、output=1组全是No),函数就直接跳过了水平行的展示
解决方法

按以下两步调整代码就能正常显示:

  • 先把g转成因子类型,手动写全要展示的水平顺序,避免函数自动识别时丢水平
  • 在tbl_summary里用type参数明确指定g为普通分类变量,不要按默认的二分类逻辑处理

修正后的可运行代码:

library(dplyr)
library(gtsummary)

data.frame(
  a = c(0,1,2),
  b = c(0,1,2),
  f = c("m", "f", "m"),
  g = factor(c("Yes", "No", "Yes"), levels = c("Yes", "No")),
  output = c(0,1,0)
) %>%
  tbl_summary(
    by = output,
    type = list(g ~ "categorical"),
    statistic = list(all_categorical() ~ "{n} ({p}%)")
  )

运行后g变量下会正常展开Yes、No两个水平行,分别统计两个output分组的计数和占比:output=0组Yes为2(100%)、No为0(0%);output=1组Yes为0(0%)、No为1(100%)。
如果不需要显示计数为0的水平,删掉因子转换的步骤,只保留type参数设置即可,此时只会展示各组实际存在的取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:18:15