2016-09-19 1 views
0

일부 모델을 거쳐 그래프를 그릴 수있는 루프를 어떻게 사용할 수 있을지 궁금합니다.루프를 사용하여 그림을 그리십시오. R

저는 2 세, 3, 4, 5 구성 요소 모델을 장착 한 각 연령 그룹과 함께 연령대별로 많은 혼합 모델을 가지고 있습니다.

ag1.mix2 
    ag1.mix3 
    ag1.mix4 
    ag1.mix5 
    ag2.mix2 
    ag2.mix3 
    ag2.mix4 
    ag2.mix5 

을 등 (AG1 = 세 그룹 1, mix2 = 2 혼합물의 구성 요소) : 나는 다음과 같은 방법을 사용하여 명명했습니다.

지금, 나는이 모델의 각각의 그래프를 그릴려고, 내가 좋아하는 뭔가를 사용하여 코드를 단순화하기 위해 노력 그러나

for(i in 1:11) { 
    emf(paste("Mixture Components by Age Group ", i, ".emf")) 
    par(mfrow = c(2, 2), oma = c(0, 0, 2, 0)) 
    for(j in 2:5) { 
    plot(cat("ag", i, ".mix", j, sep = "", "\n"), which = 2, las = 1, breaks = 100, 
     main2 = paste(j, "components"))  
    } 
    title(main = paste("Age Group", agegp[i]), outer = TRUE) 
    dev.off() 
} 

, 꽤 작동하지 않았다 R은 불평 :

내가 좋아하는 그것을 할 경우
Error in plot.window(...) : need finite 'xlim' values 

는 :

plot(ag1.mix2, which = 2, las = 1, breaks = 100, main2 = "2 Comonents") 

그리고 그것을 잘 작동합니다. 그러나 4x11 모델을 사용하면 루프를 사용할 수 있기를 기대합니다!

의견을 보내 주시면 대단히 감사하겠습니다.

케빈

PS - 혼합 모델이 mixtools 패키지를 사용하여 부착 하였다.

답변

0

당신은 get

같은

for(j in 2:5) { 
data_to_plot=get(paste0("ag", i, ".mix", j)) 
    plot(data_to_plot, which = 2, las = 1, breaks = 100, 
     main2 = paste(j, "components"))  
    } 

작은 작업 예를 사용하여 시도 할 수 있습니다 :

data1=1:10 
data2=2:20 

for (i in 1:2){ 
    png(paste0("plot_",i,".png")) 
    data_to_plot=get(paste0("data", i)) 
    plot(data_to_plot) 
    dev.off() 
} 
+0

감사 힙 - 일했다! –