我在使用 R 时遇到了很奇怪的问题。我想绘制一些股票图表。除了布林带 - BBands 之外,一切都运行良好。 - 绘图仅包含系列,不包含带。仅当我循环绘图时才会发生这种情况。当我尝试在没有循环的情况下绘制它时,就像在我的代码末尾一样,这是可以的。
编辑//我刚刚注意到 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()
最佳答案
我认为这是惰性评估的问题。尝试将对 fun
的调用包装在 print
中以强制计算。
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();
}
关于R - 有循环和无循环绘图之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694170/