0

資産価格のマトリックスがあります

A,B
12.1,33.5
12.2,33.4
12.3,33.5
12.1,33.6

次のようなものを使用して財務収益マトリックスを取得するにはどうすればよいですか?

RET(x) <- {(x-Previousx)/Previousx}  # My pseudocode

与えるために

A,B
0.0082,-0.0029
0.008197,0.0029
-0.0162,0.00298
4

3 に答える 3

3

Andrieの答えに基づいていますが、apply関数を使用する必要はありません

diff(as.matrix(dat)) / dat[-nrow(dat),]
             A            B
1  0.008264463 -0.002985075
2  0.008196721  0.002994012
3 -0.016260163  0.002985075

diff行列に適用できるため、単純に行列に変換datして適用diffすると、各列の時間差が返されます。

于 2012-12-06T12:46:56.540 に答える
2
dat <- read.csv(text = "A,B
12.1,33.5
12.2,33.4
12.3,33.5
12.1,33.6", header = TRUE)

これを行う簡単で効率的な方法を次に示します。

(tail(dat, -1) - head(dat, -1)) / head(dat, -1)


             A            B
2  0.008264463 -0.002985075
3  0.008196721  0.002994012
4 -0.016260163  0.002985075
于 2012-12-06T12:11:10.497 に答える