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

