資産価格のマトリックスがあります
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
資産価格のマトリックスがあります
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
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
すると、各列の時間差が返されます。
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