【发布时间】:2016-01-14 13:51:25
【问题描述】:
我已经使用getsymbols 函数加载并保存了我的环境,其中包含 300 多个股票历史数据。现在我正在尝试使用新的每日数据更新我的历史数据集,但它不起作用。我尝试使用merge() 和rbind(),但它似乎不适用于环境。感谢您对这个问题的帮助!
这是我的代码:
load.packages('quantmod')
tickers = spl('A,AA,AAL,AAP,AAPL,ABT,ACN,ADBE,ADI,ADM,ADP,ADS,AEE,AEP')
getSymbols(tickers, src = 'yahoo', from = '2010-01-01' , env = data, auto.assign = TRUE)
save(data, file="myTickersData.rda")
现在,我正在尝试将今天的数据附加到它,而不是从 2010 年开始重新运行它,因为这将花费很多时间。
data.today = new.env()
getSymbols(tickers, src = 'yahoo', from = '2015-10-14' , env = data.today, auto.assign = T)
updated.data = merge(data,data.today)
我收到此错误:
Error in as.data.frame.default(x) :cannot coerce class ""environment"" to a data.frame
【问题讨论】:
-
load.packages和spl函数从何而来? -
抱歉 Joshua 我忘了提!这些函数来自 SIT(系统投资工具箱) con = gzcon(url('systematicportfolio.com/sit.gz', 'rb')) source(con) close(con) load.packages('quantmod') #tickers = dow.jones .components() 股票代码 = spl('SPY,SHY,AAPL,ADBE,AMZN,DHI,DIS')
-
附加数据是一个非常糟糕的主意!每次股息、拆分或现金分配后,历史股票数据都会发生变化。因此,在添加数据几个月后,它实际上是无用的。你真的应该每天下载它,或者如果你有知识并且准备投入时间和精力,你可以维护一个包含原始数据的数据库并自己完成所有必要的工作。 (保留公司行为调整因素、现金股息调整因素、更改符号的映射,例如合并、分拆等)
标签: r time-series xts zoo quantmod