我正在尝试从矩阵中编写for循环,以在pdf上创建一系列绘图。这是我的代码:
pdf("/Users/Aurelz/Documents/Shark Research/DFO-data/Arctic/plots.pdf", height=8, width=6.5)
par(mfrow=c(3,2), mar=c(0.8,0.8,0.8,0.8), oma=c(2,2,1,1.5), mgp=c(0.5,0.5,0))
for (i in c("JUL","AUG","SEPT","OCT","NOV","DEC")){
plot(Thorny.Lmm[["r","i"]], Thorny.Lmm[["Lmm","i"]], type="l")
abline(h=0, lty=2)
title(main="Thorny skate in i")
}
dev.off()
>Error in Thorny.Lmm[["r", "i"]] : subscript out of bounds
Thorny.Lmm是以下格式的矩阵:
> Thorny.Lmm
JUL AUG SEPT OCT NOV DEC
r Numeric,513 Numeric,513 Numeric,513 Numeric,513 Numeric,513 Numeric,513
Kmm Numeric,513 Numeric,513 Numeric,513 Numeric,513 Numeric,513 Numeric,513
Lmm Numeric,513 Numeric,513 Numeric,513 Numeric,513 Numeric,513 Numeric,513
我首先尝试了这段代码,但效果很好。
plot(Thorny.Lmm[["r","JUL"]], Thorny.Lmm[["Lmm","JUL"]], type="l")
abline(h=0, lty=2)
title(main="Thorny JUL")
我确信修复起来相当简单,但我无法理解它(直到现在为止)!
感谢您的帮助!
答案 0 :(得分:3)
您想要变量i
的值而不是引用的字符串"i"
:
for (i in c("JUL","AUG","SEPT","OCT","NOV","DEC")){
plot(Thorny.Lmm[["r",i]], Thorny.Lmm[["Lmm",i]], type="l")
abline(h=0, lty=2)
title(main=paste("Thorny skate in", i))
}
dev.off()
答案 1 :(得分:3)
您可以尝试将引号从i:
中删除for (i in c("JUL","AUG","SEPT","OCT","NOV","DEC")){
plot(Thorny.Lmm[["r",i]], Thorny.Lmm[["Lmm", i]], type="l")
abline(h=0, lty=2)
title(main=paste("Thorny skate in", i))
}
dev.off()
或以更多R方式使用:
plotter <- function(month){
plot(Thorny.Lmm[["r",month]], Thorny.Lmm[["Lmm",month]], type="l")
abline(h=0, lty=2)
title(main=paste("Thorny" month))
}
lapply(colnames(Thorny.Lmm), plotter)