【发布时间】:2020-09-22 05:21:59
【问题描述】:
我下载了很多股票数据,需要将其与相关指数进行比较。为此,我需要在开始计算对数回报之前合并时间序列数据(仅限调整后的收盘价列)。
我已尝试使用 for 循环按以下方式执行此操作:请注意,我已将所有数据下载到单独的环境中,因为它包含许多股票代码的大量数据。
require(quantmod)
e<-new.env()
tickers<-c("GE","BMW.DE","NOVO-B.CO","1COV.DE")
getSymbols("^GSPC",from="2018-01-01")
getSymbols(tickers,from="2019-01-01",env=e)
现在我想取环境 e 中每个元素的第 6 列(调整后的收盘价),并将 merge.xts(join="inner") 应用于该列,以将其与 GSPC 的调整后收盘价结合起来。我选择 join="inner" 以确保我只有与 xts 日期匹配的观察结果。
for(ticker in tickers){
x<-get(ticker,envir=e)[,6]
merged_prices<-merge.xts(x,GSPC[,6])
}
当我尝试执行此操作时出现错误,我还尝试在运行 for 循环之前创建一个数据框,但我无法让它工作。
提前致谢。
【问题讨论】:
标签: for-loop merge xts quantmod