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

R语言rms包nomogram函数报错duplicated variable labels解决求助

报错原因

你从SPSS导入的age50、BMI23、genderRE三个自变量均为带值标签的labelled类型(数据集结构里的<dbl+lbl>即为该类型标识),三个变量的原始编码都是0和1,rms包的nomogram()函数读取变量值标签时出现重复冲突,触发报错。

解决方案

你可以选择以下任意一种方法处理后重新运行代码即可:

方法1:转成带自定义标签的因子(更推荐,列线图显示更直观)

将三个二分类变量转成因子,分别设置独立的水平标签,避免重复冲突:

library(dplyr)
thickness_forR_1 <- thickness_forR_1 %>%
  mutate(
    age50 = factor(age50, levels = c(0,1), labels = c("<50岁", "≥50岁")),
    BMI23 = factor(BMI23, levels = c(0,1), labels = c("<23", "≥23")),
    genderRE = factor(genderRE, levels = c(0,1), labels = c("男", "女"))
  )

处理完成后重新拟合模型、绘制列线图即可:

# 重置datadist
dd <- datadist(thickness_forR_1)
options(datadist = "dd")
# 重新拟合ols模型
fit.reg22 <- ols(ALT2 ~ age50 + BMI23 + genderRE, data = thickness_forR_1, x = TRUE, y = TRUE)
# 绘制列线图
plot(nomogram(fit.reg22))

方法2:清除变量值标签,转成普通数值型

如果不需要在列线图上显示文字标签,可以直接清除三个变量的标签属性:

library(dplyr)
library(haven)
thickness_forR_1 <- thickness_forR_1 %>%
  mutate(across(c(age50, BMI23, genderRE), zap_labels))

后续步骤和方法1一致,重置datadist、重新拟合模型即可正常绘图。


内容的提问来源于stack exchange,提问作者Ramla Juma'a

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:36:11