2013-12-20 3 views
2

R에 이상한 문제가 있습니다. 일부 주식 차트를 플로팅하고 싶습니다. Bollinger Bands - BBands를 제외한 모든 것이 잘 작동합니다. - 플롯은 밴드가 아닌 시리즈 만 포함합니다. 이것은 루프에서 음모를 꾸미는 경우에만 발생합니다. 루프를 사용하지 않고 코드를 만들려고했는데 코드의 끝 부분에서와 같이 괜찮 았습니다.R - 루프의 플로팅 및 루프 플로팅의 차이점

EDIT // Aroon, SMI, CVL 및 MACD에서도 발생하는 것으로 나타났습니다.

library(quantmod) 
library(TTR) 

getSymbols(Symbols="AAPL", src="yahoo") 
th=chartTheme('white'); 

funkcje=c('BBands','ChAD','CMF','MFI','CCI','MACD','RSI','ROC','TDI','Aroon','SMI','ADX','ATR','ChVol','CLV','DPO','EMV','KST','SAR','Volatility','WPR','ZigZag'); 

#everything works fine except for i=1 - BBands 
for(i in 1:length(funkcje)){ 
    fun=get(paste0('add',funkcje[i])); 
    cat(funkcje[i],'\n') 
    pdf(paste0(funkcje[i],'.pdf')) 
    chartSeries(AAPL, type="line", theme=th) 
    fun(); 
    dev.off(); 
} 

#this works fine 
fun=get(paste0('add',funkcje[1])) 
pdf(paste0(funkcje[1],'.pdf')) 
chartSeries(AAPL, type="line", theme=th) 
fun() 
dev.off() 
+0

아주 좋은 질문입니다. 나는이 문제를 해결하는 방법을 모른 채이 질문을 만났다. –

답변

2

나는 게으른 평가의 문제라고 생각합니다. 평가를 강제하려면 funprint으로 전화를 겁니다.

for(i in 1:length(funkcje)){ 
    fun=get(paste0('add',funkcje[i])); 
    cat(funkcje[i],'\n') 
    pdf(paste0(funkcje[i],'.pdf')) 
    chartSeries(AAPL, type="line", theme=th) 
    print(fun()) 
    dev.off(); 
} 
+0

이 문제가 해결되었습니다. –

0

chart_Series()을 사용하여 유사한 문제가 발생했습니다. 내가 chart_Series()을 그렇지 않으면 빈 plot() 함수 안에 넣을 때까지는 루프 내부에 줄거리를 그릴 수 없습니다. BBands는 똑같은 일이 여기에서 끝나면 보여줍니다. 실제로 플롯에 while 루프/

getSymbols(Symbols="AAPL", src="yahoo") 
th=chartTheme('white'); 

funkcje=c('BBands','ChAD','CMF','MFI','CCI','MACD'); 
chartSeries(AAPL, type="line", theme=th) 
#everything works fine except for i=1 - BBands 
for(i in 1:length(funkcje)){ 
    fun=get(paste0('add',funkcje[i])); 
    plot(fun()) 
} 

내가이 다른 사람들이 그들의 quantmod을 얻을 찾고 도움이되기를 바랍니다 : 나는 루프의 외부 실제 chartSeries() 전화를 이동하여 내 그래픽 장치에 마진 문제를 avoide하는 연구 및 감소 깜박임을 감소 어떤 것.