计算 (nxm) xts 对象的回报的最直接方法是什么?
当我将一个 (nxm) xts 对象mxts输入到quantmod函数中时dailyReturn,返回值是一个 (nx 1) 向量,表示第一列的返回值。我正在寻找的是一种生成 (nxm) xts 对象的方法,该对象包含mxts.
我尝试使用一些应用功能,例如
lapply(mxts,dailyReturn)
Run Code Online (Sandbox Code Playgroud)
但是返回总是有错误的类型并且丢失了它们的标签(dailyReturn将colnames向量的值更改为“daily.returns”)。
有没有一种简单的、非 hacky 的方法来实现这一目标?我可能对这个问题使用了错误的函数吗?
ROCTTR 包中的函数将执行此操作,但您可以使用自己轻松进行计算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
Run Code Online (Sandbox Code Playgroud)