R - 有循环和无循环绘图之间的差异

标签 r loops plot quantmod

我在使用 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/

相关文章:

java - java新手,while循环?

java - 如何提取包含某个单词的每个句子

python - Matplotlib 绘制数百个矩形轮廓

r - as.POSIXct/as.POSIXlt 不喜欢 .61 毫秒

R:是否可以在同一列中使用 mutate+lag?

java - 使用 while 循环打印值

excel - 如何从散点图点到水平轴绘制线条

r - 使用 `apply` 将字符串修改为 `tolower`

r - 使用 grep 查找 "and"而不是 "or"

python - 使用元组元素从列表制作频率直方图