【问题标题】:How to bind two xts data environments in R如何在 R 中绑定两个 xts 数据环境
【发布时间】:2013-12-28 23:16:43
【问题描述】:

我对 R 完全陌生,我正在学习如何在 R 中编程以获取历史股票指数数据。我计划构建一个每日更新代码来更新历史索引数据。我使用名为“indexData”的数据环境将数据存储为 xts。但不幸的是,rbind 或 merge 不支持数据环境。它们只支持对象。我想知道是否有任何解决方法或软件包可以用来解决这个问题。我的代码如下:

  indexData<-new.env()
  startDate<-"2013-11-02"
  getSymbols(Symbols=indexList,src='yahoo',from=startDate,to="2013-11-12",env=indexData)
  startDate<-(end(indexData$FTSE)+1)
  NewIndexData<-new.env()
  getSymbols(Symbols=indexList,src='yahoo',from=startDate,env=NewIndexData)
  rbind(indexData,NewIndexData) #it does not work for data environments

非常感谢您的任何建议!

【问题讨论】:

    标签: r xts quantmod


    【解决方案1】:

    如果您使用auto.assign=FALSE,您将获得显式变量——您可以如下所示扩展这些变量。

    首先我们得到两个 IBM 价格系列:

    R> IBM <- getSymbols("IBM",from="2013-01-01",to="2013-12-01",auto.assign=FALSE) 
    R> IBM2 <- getSymbols("IBM",from="2013-12-02",to="2013-12-28",auto.assign=FALSE) 
    

    然后我们检查他们的日期:

    R> c(start(IBM), end(IBM))
    [1] "2013-01-02" "2013-11-29"
    R> c(start(IBM2), end(IBM2))
    [1] "2013-12-02" "2013-12-27"
    

    最后,我们合并它们并检查合并系列的日期:

    R> allIBM <- merge(IBM, IBM2)
    R> c(start(allIBM), end(allIBM))
    [1] "2013-01-02" "2013-12-27"
    R> 
    

    您可以通过从两个环境中提取不同的符号来近似这一点,但我认为对于从 R 开始的人来说这对您来说更难。所以我的建议是不要使用环境——请参阅列表。

    【讨论】:

    • 谢谢德克。它节省了我很多时间。我会用列表重新编程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    相关资源
    最近更新 更多