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

tbl_summary处理二分类变量报错:无1值时无法生成0%占比结果

解决gtsummary处理无阳性值二分类变量的问题

问题场景

使用gtsummary 2.0.0(基于R 4.1.1)时,过滤后二分类变量(取值为1/0)仅剩0值:

  • 指定type = everything() ~ "dichotomous"时,报错Summary type is "dichotomous" but no summary value has been assigned.
  • 不指定type时,变量会被当作分类变量展示,无法输出二分类形式的0%结果

无需重编码的解决方案

通过tbl_summary()的value参数手动指定二分类变量的阳性值(即原数据中的1),即可强制按二分类格式输出0%的统计结果,无需将变量重编码为Y/N。

修改后的示例代码

data <- data.frame(group = c("a", "b", "a", "a", "b"),
                   resp_1 = c(1, 1, 0, 1, 1),
                   resp_2 = c(0, 1, 0, 0, 1))

data %>% 
  filter(group == "a") %>% 
  select(starts_with("resp")) %>% 
  tbl_summary(
    type = everything() ~ "dichotomous",
    value = everything() ~ 1  # 明确指定阳性值为1
  )

原理说明

  • 报错根源:当仅指定dichotomous类型但未定义阳性值时,gtsummary会自动识别数据中存在的非默认值作为统计目标,但如果数据中无1值,程序无法找到对应统计值,从而抛出错误。
  • 指定value参数后,程序会强制以设定的阳性值(1)为统计对象,即使数据中不存在该值,也会生成1: 0 (0%)的二分类统计结果,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 12:39:53