更新gtsummary至1.7.1后tbl_svysummary无法处理带标签因子变量
解决方案
针对gtsummary 1.7.1版本中tbl_svysummary处理带标签因子变量时的类型不兼容错误,提供以下几种保留标签的解决方法:
方法1:将带标签变量转为保留标签的因子
使用haven::as_factor()将labelled类变量转换为因子,该函数会自动将变量的标签设置为因子水平,既解决类型匹配问题,又保留标签信息:
PAPTABLE = why_subd %>% mutate(RE_US = haven::as_factor(RE_US)) %>% tbl_svysummary(by = RE_US, include = PAPYNOEV3YR, statistic = list(all_categorical() ~ "{p}%"))
方法2:回退到稳定版本
如果暂时不想修改代码,可以回退到gtsummary 1.7.0版本(该版本无此兼容问题):
# 卸载当前版本 remove.packages("gtsummary") # 安装指定版本 remotes::install_version("gtsummary", version = "1.7.0")
方法3:手动指定因子水平与标签
若需要更精细的控制,可手动提取变量标签并转换为因子:
PAPTABLE = why_subd %>% mutate( # 处理分组变量RE_US RE_US = factor( RE_US, levels = haven::val_labels(RE_US), labels = names(haven::val_labels(RE_US)) ), # 处理分析变量PAPYNOEV3YR(确保标签保留) PAPYNOEV3YR = factor( PAPYNOEV3YR, levels = haven::val_labels(PAPYNOEV3YR), labels = names(haven::val_labels(PAPYNOEV3YR)) ) ) %>% tbl_svysummary(by = RE_US, include = PAPYNOEV3YR, statistic = list(all_categorical() ~ "{p}%"))
内容的提问来源于stack exchange,提问作者user12006342
相关产品推荐
相关产品推荐

