【问题标题】:Create an xts object in R from multiple Quandl codes从多个 Quandl 代码在 R 中创建一个 xts 对象
【发布时间】:2015-10-15 20:13:45
【问题描述】:

我试图同时将多个 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 对象。

【问题讨论】:

    标签: r xts quandl


    【解决方案1】:

    您不需要构建 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)
    

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

    【讨论】:

    • 非常感谢,博格特。看到答案后,答案似乎总是很容易。工作完美。我一直在合并时间序列,并且一直在寻找一种方法来一次获取向量中所有代码的 Quandl 数据 - 节省大量时间......谢谢!
    猜你喜欢
    • 2021-08-11
    • 1970-01-01
    • 2020-07-20
    • 2015-11-11
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    相关资源
    最近更新 更多