循环简单向量算法的R语言不适用于时间序列

循环简单向量算法的R语言不适用于时间序列,r,for-loop,vector,time-series,R,For Loop,Vector,Time Series,我正在尝试做一个简单的移动平均线(SMA)的谷歌股票。这样做时,SMA会出现奇怪的不连续的红色线条: frame() rm(list=ls()) #Value of securities in GOOG GOOG=read.csv(file="GOOG.csv", head=TRUE, sep=",") plot(x=GOOG$Close, type="l", ylab="GOOG Closing Prices",xlab="Time") SMA=GOOG$Close #5 Day SMA

我正在尝试做一个简单的移动平均线(SMA)的谷歌股票。这样做时,SMA会出现奇怪的不连续的红色线条:

frame()
rm(list=ls())

#Value of securities in GOOG
GOOG=read.csv(file="GOOG.csv", head=TRUE, sep=",")
plot(x=GOOG$Close, type="l", ylab="GOOG Closing Prices",xlab="Time")
SMA=GOOG$Close

#5 Day SMA in RED
for(i in 1:84)
{
  segments(x0=i,y0=mean(SMA[i:i+4]),
       x1=i+1, y1=mean(SMA[i+1:i+5]),
       col="red")
}
然而,当我用(SMA[I]+…+SMA[I+4])/5替换平均值(SMA[I]+…+SMA[I+4])(与替换平均值(SMA[I+1:I+5])相同)时,数值计算结果很好,SMA图应该是平滑和连续的

但这两种价值观不是一回事吗?如何在保持平均值的速记方式的同时纠正此问题?

试试:

#5 Day SMA in RED
for(i in 1:84)
{
  segments(x0=i,y0=mean(SMA[i:(i+4)]),
       x1=i+1, y1=mean(SMA[(i+1):(i+5)]),
       col="red")
}
*(增加括号)

小心你的指数