绘制ROC曲线时R报‘unused arguments’错误求助
问题原因与解决方法
这个报错的核心原因是其他R包中的roc函数覆盖了pROC包的同名函数——其他包的roc不支持plot、legacy.axes这些参数,导致传入后被判定为无效参数。
解决步骤
1. 确认当前使用的roc函数来源
运行以下代码查看哪个包的roc在生效:
find("roc")
如果输出结果中包含pROC以外的包(比如ROCR、caret),说明该包的roc函数正在覆盖pROC的版本。
2. 显式调用pROC的roc函数
修改你的代码,直接指定使用pROC包的roc函数,避免被其他包干扰:
y1 <- as.integer(E_SOFA_StudyPop$`Dead within 28 d (1/0)`) x <- as.integer(E_SOFA_StudyPop$`3h total SOFA`) par(pty = "s") roc.a <- pROC::roc(y1, x, plot = TRUE, legacy.axes = TRUE, lwd = 4, add = TRUE, col = "darkred")
3. 更稳妥的分步写法(推荐)
如果需要绘制多条ROC曲线或更精细控制绘图参数,建议先创建ROC对象,再单独调用绘图函数:
# 创建ROC对象 roc.a <- pROC::roc(y1, x) # 设置绘图参数并绘制 par(pty = "s") plot(roc.a, legacy.axes = TRUE, lwd = 4, col = "darkred") # 若要添加第二条曲线,再调用plot(roc.b, add=TRUE, ...)
4. 排查版本问题
如果上述方法仍无效,检查pROC版本并重装最新版:
# 查看当前版本 packageVersion("pROC") # 重装最新版 install.packages("pROC")
内容的提问来源于stack exchange,提问作者Gustaf Smitt Einarson
相关产品推荐
相关产品推荐

