我正在使用lapply
生成多个图,以从每个图的向量中检索数据。
问题:
abline
,但是它仅在最后一个图中绘制。 数据:
perfs
是一个包含3个元素的向量,每个元素都包含该图的主要数据。k
,该值先前已在向量ks = c(5,7,11)
中定义我尝试向lapply添加参数。
lapply(perfs, function(perf) {plot(perf, main = paste0("Curva ROC", ks), col = "#42f4bf", lwd = 4)})
abline(a = 0, b = 1, lwd = 2, lty = 2)
实际:
预期:
abline
答案 0 :(得分:1)
要对每个绘图使用正确的标题,您需要一种将perfs元素与ks元素链接的方法,因此您只需为每个绘图选择一个。
一种执行此方法(也许是最简单的方法)的方法是使用for
循环,而不是套用,然后在ks[i]
的{{1}}参数中使用main
。如果您更喜欢使用plot
,那么我认为lapply
应该可以正常工作(如下面的代码所示),前提是match
的每个元素都不同。
要在每个图上使用一个perfs
,您需要在abline
中调用的函数中包含abline
部分,以便在每个图旁边运行该部分。
lapply
答案 1 :(得分:0)
我正在使用@hodgenovice表示的for循环
我使用索引ind
访问k
向量中ks
的值。
这样,我可以为每个图形绘制abline
,并根据k
的值命名它们。
ks <-c(5, 7, 11) # the previously defined values of k
ind <- 1 # index used for accessing ks
for (perf in perfs){ # each perf in perfs contains data used in the plot
k <- ks[ind]
ind <- ind + 1
plot(perf, main = paste0("ROC Curve k = ", k), col = "#42f4bf", lwd = 4)
abline(a = 0, b = 1, lwd = 2, lty = 2)
}