gpt4 book ai didi

r - 通过for循环创建空的xts对象

转载 作者:行者123 更新时间:2023-12-02 04:55:21 25 4
gpt4 key购买 nike

我试图通过 for 循环创建一系列空的 xts 对象,但失败了。

我创建了一个名为 SYMBOL_vector 的字符向量,其中包含我希望创建的空 XTS 对象的名称。我还使用 getSymbols 下载了一些股票市场数据,包括代码 SPY 的数据。因此,存在一个名为 SPY 的 XTS 对象。

我的for循环代码是:

for (i in 1 : length(SYMBOL_vector)) {
SYMBOL_vector[i] <- as.xts(order.by = index(SPY))
}

当我运行代码时,我收到以下错误:

Error in xts(x = NULL, order.by = x, ...) : formal argument "order.by" matched by multiple actual arguments

如果反馈很重要,一旦创建了空的 xts 对象,我将编写另一个 for 循环来用每日返回数据填充每个对象。

我并不反对对循环采取一种完全不同的方法......这个方法似乎又快又简单。预先感谢您的任何帮助!

最佳答案

如果您只使用 xts 而不是 as.xts,您的代码应该可以工作,但是,这并不是真正的“R 方式”(或“quantmod 方式”)解决问题。

考虑一下:

library(quantmod)
s <- c("SPY", "DIA", "QQQ")
e <- new.env() # an empty environment to hold yahoo price data
getSymbols(s, env=e)
L <- eapply(e, dailyReturn) # a list of returns
L$SPY

您可能可以停在这里,但如果您愿意,您可以将列表转换为环境。

ret <- as.environment(L) # an environment with xts objects of daily returns
ls(ret)
get("DIA", pos=ret)

或者,如果您确实想要,可以附加该 ret 环境(不推荐)

attach(ret)  # not recommended
head(QQQ)
# daily.returns
#2007-01-03 -0.0050621261
#2007-01-04 0.0189639223
#2007-01-05 -0.0047662279
#2007-01-08 0.0006841505
#2007-01-09 0.0050136737
#2007-01-10 0.0117913832

关于r - 通过for循环创建空的xts对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18556409/

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