来自quantmod 包中的getSymbols() 的documentation:
当前可用的 src 方法有:yahoo、google、MySQL、FRED、csv、
RData 和 oanda。
您可以执行以下操作来保存文件并在之后加载它,例如:
data <- getSymbols("AAPL",auto.assign=FALSE)
save(data,file="AAPL.rda")
(启动新的 R 会话,或清除环境等)
要检索以前保存的数据,我们可以使用
load(file = "AAPL.rda")
现在具有 AAPL 时间序列的数据集 data 再次可用。
请注意,不应不将load() 的输出分配给一个对象,例如data <- load(file=...)。这是一个常见的错误,经常会造成混乱。此示例中的data 文件是使用load() 函数本身恢复的。
可以获取加载数据的子集,例如,使用
data['2010-02-02::2011-01-01']
#> head(data['2010-02-02::2011-01-01'])
# AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
#2010-02-02 195.91 196.32 193.38 195.86 174585600 25.75517
#2010-02-03 195.17 200.20 194.42 199.23 153832000 26.19832
#2010-02-04 196.73 198.37 191.57 192.05 189413000 25.25416
#2010-02-05 192.63 196.00 190.85 195.46 212576700 25.70257
#2010-02-08 195.69 197.88 194.00 194.12 119567700 25.52636
#2010-02-09 196.42 197.50 194.75 196.19 158221700 25.79856
编辑:
以下示例说明了如何使用.RData 文件:
saveSymbols(getSymbols("AAPL"), file.path=getwd()) #saves 'AAPL.RData' in working directory
rm(AAPL)
data <- getSymbols("AAPL", src="RData", extension="RData", auto.assign=FALSE)
#> head(data)
# AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
#2007-01-03 86.29 86.58 81.90 83.80 309579900 11.01952
#2007-01-04 84.05 85.95 83.82 85.66 211815100 11.26411
#2007-01-05 85.77 86.20 84.40 85.05 208685400 11.18389
#2007-01-08 85.96 86.53 85.28 85.47 199276700 11.23912
#2007-01-09 86.45 92.98 85.15 92.57 837324600 12.17276
#2007-01-10 94.75 97.80 93.45 97.00 738220000 12.75529
进一步编辑:
我可以确认@Hack-R 在 cmets 中所做的声明。尽管文档以一种相当隐蔽的方式对此进行了描述,但通过阅读有关getSymbols.rda() 的部分,可以清楚地看出src="rda" 选项仍然支持作为getSymbols() 的有效参数。事实上,它仍然适用于我的安装:
data <- getSymbols("AAPL",auto.assign=FALSE)
save(data,file="AAPL.rda")
rm(data)
data <- getSymbols("AAPL", src="rda", auto.assign=FALSE)
#>head(data)
# AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
#2007-01-03 86.29 86.58 81.90 83.80 309579900 11.01952
#2007-01-04 84.05 85.95 83.82 85.66 211815100 11.26411
#2007-01-05 85.77 86.20 84.40 85.05 208685400 11.18389
#2007-01-08 85.96 86.53 85.28 85.47 199276700 11.23912
#2007-01-09 86.45 92.98 85.15 92.57 837324600 12.17276
#2007-01-10 94.75 97.80 93.45 97.00 738220000 12.75529
总之,在使用 quantmod 保存、加载和操作时间序列的几种变体之后,我们似乎回到了原点:OP 中描述的错误似乎无法重现。