我用 Quantmod 下载历史价格getSymbols
函数用于多个代码,并使用以下代码将它们转换为列表或多变量 XTS:
library(quantmod)
myenv <- new.env()
tickers <- c("^GSPC", "AAPL", "MSFT", "GOOG", "^RUT")
getSymbols(tickers, env=myenv)
ll <- eapply(myenv, function(x) x) # Convert to list
ts <- do.call(merge, (eapply(myenv, Ad))) # Convert to multivariate XTS and extract only the adjusted price
我使用这种方法的问题是列表和 XTS 中的代码顺序与我在中指定的顺序不同tickers
:
> names(ll)
[1] "AAPL" "GSPC" "GOOG" "RUT" "MSFT"
> names(ts)
[1] "AAPL.Adjusted" "GSPC.Adjusted" "GOOG.Adjusted" "RUT.Adjusted"
[5] "MSFT.Adjusted"
我认为这是因为eapply
以随机顺序执行操作,如帮助页面中所述eapply
:
Note that the order of the components is arbitrary for hashed environments.
如何执行上面相同的操作,但输出的顺序与我的指定顺序相同tickers
向量? IE。列表的第一项/XTS 的第一列应对应于tickers
矢量等。