0

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 です。この 2 つの間の最短距離は、次の増分で移動することによるものです。

(1.12 - 0.98) / (24-1) = 0.0060355

シリーズを取得するには、0.98 を 0.0060355 に加算して要素 2 を取得する必要があります。要素 3 を取得するには、要素 2 に 0.0060355 を加算する必要があります。ループして前の要素を参照する必要があるループではなく、R でこれを最も効率的に行うにはどうすればよいでしょうか? これは可能ですか?

4

3 に答える 3

3

もう 1 つの解決策は、新しいベクトル w を作成し、cumsum 関数を使用することです。

w <- c(.98, rep(0.0060355,23)
cumsum(w)
于 2013-06-11T14:39:38.020 に答える
1

新しいシーケンスで等間隔の間隔が必要なようです。seqその場合、コマンドを使用したいだけだと思います

seq(z[1],z[length(z)],(z[length(z)]-z[1])/(length(z)-1))
于 2013-06-11T14:15:41.360 に答える