gpt4 book ai didi

r - 如何使用 getSymbols 下载一组价格并按照请求的顺序存储它们?

转载 作者:行者123 更新时间:2023-12-05 00:30:56 24 4
gpt4 key购买 nike

我用 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 的第一个元素矢量等等。

最佳答案

您可以对 eapply 的结果进行子集化到你想要的顺序。

library(quantmod)
tickers <- c("^GSPC", "AAPL", "MSFT", "GOOG", "^RUT")
myenv <- new.env()
symnames <- getSymbols(tickers, env=myenv) # getSymbols returns adjusted names
ts <- do.call(merge, eapply(myenv, Ad)[symnames])

关于r - 如何使用 getSymbols 下载一组价格并按照请求的顺序存储它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com