2012-04-12 3 views
1

행렬에서 for 루프를 작성하여 pdf에 일련의 플롯을 작성하려고합니다. 여기 내 코드는 다음과 같습니다R에 행렬이있는 루프에 대해

> 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 

내가 먼저 잘 작동이 코드를 시도 :

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은 다음과 같은 형식의 행렬이다.

plot(Thorny.Lmm[["r","JUL"]], Thorny.Lmm[["Lmm","JUL"]], type="l") 
abline(h=0, lty=2) 
title(main="Thorny JUL") 

(지금은 어쨌든까지) 나는 그것을 해결하기 위해 매우 간단 확실 해요,하지만 난 그냥 주위에 내 머리를 얻을 수 없습니다!

도움 주셔서 감사합니다.

답변

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() 
+0

당신은 저를 때려 눕 힙니다. 저스틴 :) 저도 계속 저를 지켜 드리겠습니다. 솔루션입니다. +1 –

+0

고마워요 @ 재 스틴, 그 말도 안되게 고치기가 쉬웠습니다 :) – GodinA

+0

@TylerRinker 너의 것이 훨씬 더 (그리고 더 예쁘다) 해결책이다. 바라기를 포스터는 그것에 엿봄을 가지고 간다! – Justin

3

당신은 내가 떨어져 따옴표를 떠나 시도 할 수 :

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) 
+0

유용한 @ 타일러 링커! – GodinA

관련 문제