1

行列から 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")

修正するのはかなり簡単だと確信していますが、私はそれを理解することができません (とにかく今まで)!

ご協力ありがとうございました!

4

2 に答える 2

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()
于 2012-04-12T18:48:27.337 に答える
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)
于 2012-04-12T18:52:47.807 に答える