4

(nxm) xts オブジェクトのリターンを計算する最も簡単な方法は何ですか?

関数に(nxm) xts オブジェクトmxtsを渡すと、戻り値は (nx 1) ベクトルで、最初の列の戻り値を表します。私が探しているのは、の各列のそれぞれの戻りベクトルを含む (nxm) xts オブジェクトを生成する方法です。quantmoddailyReturnmxts

次のようないくつかの適用機能を使用しようとしました

lapply(mxts,dailyReturn)

しかし、リターンは常に間違った型を持ち、ラベル付けを失いました (ベクトルdailyReturnの値colnamesを "daily.returns" に変更します)。

これを達成するための簡単で非ハッキーな方法はありますか? この問題に対して間違った関数を使用している可能性がありますか?

4

1 に答える 1

5

TTR パッケージのROC関数がこれを行いますが、自分で簡単に計算を行うことができますlag(これはROC内部で行われます)。

R> require(quantmod)  # loads TTR
R> getSymbols("SPY")
R> head(ROC(OHLC(SPY)))
                SPY.Open      SPY.High       SPY.Low     SPY.Close
2007-01-03            NA            NA            NA            NA
2007-01-04 -0.0071963059 -5.686021e-03  0.0002845153  0.0021198425
2007-01-05  0.0007078143 -4.586355e-03 -0.0016370693 -0.0080082636
2007-01-08 -0.0036151023  7.071886e-05 -0.0009264869  0.0046143553
2007-01-09  0.0034735795  1.342709e-03  0.0010689472 -0.0008502799
2007-01-10 -0.0051793368 -2.118869e-04 -0.0007125045  0.0033261416
于 2012-11-23T03:59:52.810 に答える