gpt4 book ai didi

r - 使用 for 循环绘制多条 ROC 曲线

转载 作者:行者123 更新时间:2023-12-04 17:37:55 25 4
gpt4 key购买 nike

我需要在单个图上绘制多个不同的 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() }

关于r - 使用 for 循环绘制多条 ROC 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com