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

如何用选择助手与集合操作实现tbl_regression指定变量单行显示?

解决tbl_regression中指定二分变量单行显示的问题

问题原因

all_dichotomous()是gtreg包中的函数型变量选择器,直接调用时返回的是函数对象而非变量名字符向量,因此无法直接和setdiff()配合使用,这就是报错的根源。

解决方案

以下两种方法都能实现「仅PAIN_SCALE显示为两行,其他二分变量单行显示」的需求,且无需手动枚举所有二分变量:

方法1:使用选择器的排除语法(推荐)

gtreg的变量选择器支持通过-符号排除特定变量,直接结合all_dichotomous()使用即可:

showmodel = model |>
  tbl_regression(
    show_single_row = all_dichotomous() - "PAIN_SCALE"
  )

方法2:手动提取二分变量列表后排除目标变量

先从模型数据中筛选出所有二分因子变量,再排除PAIN_SCALE,得到需要单行显示的变量向量:

# 提取模型中的所有二分因子变量名
dichotomous_vars = model$model |> 
  dplyr::select(tidyselect::where(~is.factor(.) && nlevels(.) == 2)) |> 
  colnames()

# 排除PAIN_SCALE
target_vars = setdiff(dichotomous_vars, "PAIN_SCALE")

# 生成回归表格
showmodel = model |>
  tbl_regression(
    show_single_row = target_vars
  )

效果验证

两种方法都会让:

  • INDIV_GENDER、FLOWER_COLOR(二分变量)以单行形式显示
  • PAIN_SCALE(二分变量)保持两行显示
  • INDIV_ETHNICS(多分类变量)不受影响,正常显示所有分类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:56:05