我是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
非常感谢任何建议!
答案 0 :(得分:3)
如果您使用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开始的人会更难。所以我的建议是不适合环境 - 请参阅列表。