![](/img/trans.png)
[英]Loop to plot multiple ROC curves in one unique plot using ROCR
[英]Plot multiple ROC curves using a for loop
我需要在一个图上绘制许多不同的 ROC 曲线。 为了避免手动创建每个 ROC 曲线,我创建了一个 for 循环来自动执行此过程。 但是,出于某种原因,代码仅输出一条曲线,用于名称列表中的最后一个模型。 谁能帮我弄清楚为什么它不起作用? 请参阅下面的可重现示例:
library(pROC)
library(tidyverse)
dat_tst_2 <- data.frame(result = sample(letters[1:2], 100, replace = T))
preds_1 <- data.frame(x = runif(100),
y = runif(100))
preds_2 <- data.frame(x = runif(100),
y = runif(100))
names_preds <- c("preds_1", "preds_2")
output <- list()
for (j in 1:length(names_preds)) {
for (i in names_preds) {
roc_model <- roc(response = dat_tst_2$result,
predictor = eval(as.name(i))[,2],
levels = c("a", "b"),
plot = F)
output[[j]] <- roc_model
}
}
ggroc(output)
首先确保使用 str(output) 输出有多个项目。 然后尝试将输出中的每个项目传递给 ggroc:
lappy( output, function (out) { png()
print (ggroc(out))
dev.off() }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.