我有一个名为z的矢量:
x<-matrix(rep(-0.02,12))
y<-matrix(rep(0.03,12))
a<-rbind(x,y)
z<-cumprod(1+a) #
Z矢量中的初始点和最后一点是0.98和1.12。系列的长度是24.两者之间的最短距离是以增量:
的方式行进(1.12-0.98)/(24-1)= 0.0060355
为了获得系列,我必须添加0.98到0.0060355才能获得元素2.要获得元素3,我必须使用元素2并添加0.0060355。如何才能在R中最有效地执行此操作而不是需要循环和引用前一个元素的循环?这可能吗?
答案 0 :(得分:2)
另一个解决方案是创建一个新的向量w并使用cumsum函数:
w <- c(.98, rep(0.0060355,23)
cumsum(w)
答案 1 :(得分:1)
您似乎希望新序列中的间隔相等。在这种情况下,我认为您只想使用 seq
命令
seq(z[1],z[length(z)],(z[length(z)]-z[1])/(length(z)-1))
答案 2 :(得分:1)
不要计算增量,而是让seq
为你做:
seq(z[1], z[length(z)], length=length(z) )