组合getSymbols创建的多个xts对象

时间:2015-08-18 14:32:19

标签: r merge xts quantmod portfolio

我正在尝试进行一些股票投资组合模拟。使用套餐'quantmod'我已经下载了多个证券的价格数据。我想完成两件事。

1)我想创建一个xts对象的列表/数组,其中每个安全标记符号对应于列表中的时间序列对象。

2)更重要的是,我希望按天为每个证券创建一个时间序列数据框,并调整其股价。

我有以下代码,可以下载所有价格数据。

library(quantmod)

tickers <- c("SNC.TO", "PHII", "HBC.TO", "GTE", "MOO",
             "MND.TO", "STKL", "SXC","XIU.TO")

for(i in tickers) {
  getSymbols(i, from = "2010-06-30", to = "2015-06-30") 
}

这是我到目前为止尝试创建数据帧列表

pframe <- list()
for(i in tickers) {
  pframe[[i]] <- assign(i)
}

1 个答案:

答案 0 :(得分:3)

最简单的方法是将所有数据加载到新环境中。然后,您可以使用eapply将所有已调整的关闭列提取到列表中。最后,您可以使用do.call将列表中的所有调整后的收盘价合并为一个xts对象。

library(quantmod)
tickers <- c("SNC.TO", "PHII", "HBC.TO", "GTE", "MOO",
             "MND.TO", "STKL", "SXC","XIU.TO")
dataEnv <- new.env()
getSymbols(tickers, from="2010-06-30", to="2015-06-30", env=dataEnv)
plist <- eapply(dataEnv, Ad)
pframe <- do.call(merge, plist)