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

更新后tbl_uvregression无法处理含空格变量名问题求助

解决tbl_uvregression变量名含空格报错问题

问题原因

最新版本的gtsummary包中,tbl_uvregression函数构建回归公式时,未对含空格的变量名添加反引号包裹,导致公式解析失败(R中含空格的变量名必须用反引号包裹才能被正确识别)。

解决方案

方法1:临时重命名变量(快速适配现有代码)

在调用函数前,用dplyr::rename将带空格的变量临时改为无空格名称,执行完后可按需改回原名称:

library(gtsummary)
library(dplyr)

# 临时重命名带空格的变量
mtcars_temp <- mtcars %>% rename(cyl_no_space = `cyl but with spaces`)
# 执行回归表格生成
tbl_uvregression(mtcars_temp, y = mpg, method = lm)
# 如需保留原变量名,可再改回
mtcars <- mtcars_temp %>% rename(`cyl but with spaces` = cyl_no_space)

方法2:自动给带空格变量加反引号(无需修改变量名)

编写辅助函数自动识别带空格的变量并添加反引号,传入tbl_uvregression的x参数即可:

library(gtsummary)
library(purrr)

# 辅助函数:生成带反引号的变量名列表
get_quoted_vars <- function(data, y_var) {
  all_vars <- setdiff(names(data), y_var)
  map_chr(all_vars, ~if (grepl("\\s", .x)) paste0("`", .x, "`") else .x)
}

# 调用函数生成回归表格
tbl_uvregression(
  mtcars, 
  y = mpg, 
  x = get_quoted_vars(mtcars, "mpg"), 
  method = lm
)

方法3:提交bug反馈

该问题属于gtsummary最新版本的兼容性问题,可在包的GitHub仓库提交issue,等待官方修复后即可恢复原有代码的正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:40:56