【问题标题】:for loop with a matrix in RR中带有矩阵的for循环
【发布时间】:2012-04-12 18:45:30
【问题描述】:

我正在尝试从矩阵编写 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")

我确信修复起来相当简单,但我就是想不通(反正直到现在)!

感谢您的帮助!

【问题讨论】:

    标签: r for-loop matrix


    【解决方案1】:

    您想要变量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()
    

    【讨论】:

    • 你打败了我 Justin :) 我也会保留我的,因为我也建议使用 lapply 解决方案。 +1
    • 谢谢@Justin,这很容易解决:)
    • @TylerRinker Yours 是更好(也更漂亮)的解决方案。希望海报能看一眼!
    【解决方案2】:

    你可以试着去掉 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()
    

    或者以更正确的方式使用:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多