1

我正在尝试将多个 Quandl 代码同时拉入 R 中,并希望最终得到一个 xts 对象,其中包含数据的 [i] 列(加上日期列)。

我创建的用于从 Quandl 调用数据的函数似乎没问题,但我需要有关创建 xts 对象的语法方面的帮助。这是我到目前为止所拥有的:

# Build vector of model holdings
holdings <- c("VTI","VEA","VWO","LQD","BND","TLT","VNQ","GLD","VGSH")

# Function to fetch each holding as an xts object, adjusted close returns
getQholdings <- function(ticker){
  codes <- paste("EOD/",ticker,".11",sep="")
  for(i in 1:length(ticker)){
      ???? <- Quandl(codes[i],type="xts",transformation="rdiff",
                     start_date="2013-12-31",collapse="monthly",
                     force_irregular=TRUE)
    }}

我需要问号所在​​的帮助,我认为这应该是某种函数,可以通过“for”函数的每次迭代逐步构建 xts 对象。

4

1 回答 1

2

您不需要构建 xts 对象 -Quandl函数会为您完成。

带有 2 个代码的示例:

codes <- c("EOD/VTI.11", "EOD/VEA.11")
x1 <- Quandl(codes,type="xts",transformation="rdiff",
       start_date="2013-12-31",collapse="monthly",
       force_irregular=TRUE)

head(x1)

结果:

           EOD.VTI - Adj_Close EOD.VEA - Adj_Close
2014-01-31        -0.031693078        -0.052063340
2014-02-28         0.048664944         0.059478613
2014-03-31         0.005078150        -0.003653885
2014-04-30         0.000615574         0.015749939
2014-05-31         0.021019174         0.017652672
2014-06-30         0.026241859         0.010426937

合并时间序列

但是,如果您已经有两个时间序列,请使用merge

x1 <- Quandl("EOD/VTI.11", type="xts", ......
x2 <- Quandl("EOD/VEA.11", type="xts", ......

x <- merge(x1, x2)

merge在 xts 上基于时间序列的时间索引。

于 2015-02-16T22:48:09.127 回答