如何使用 quantmod R 在 rda/RData 文件中导入时间序列

How to import time series in rda/RData file using quantmod R

我正在尝试将股票时间序列保存在 rda/RData 文件中,然后在 quantmod 中调用它。

我已使用此代码

下载 AAPL 的股票时间序列并将其保存为 rda/RData 文件
data=getSymbols("AAPL",auto.assign=F)
save(data,file="AAPL.rda")
#Cleared environment 

现在我应该如何使用 quantmod 调用这个 rda/RData 文件。试过这个

getSymbols('AAPL',src='rda')

但显示此错误

Error in fr[, -1] : incorrect number of dimensions

下一个问题是,如果我有多个 rda 文件(如 AAPL.rda、GOOG.rda、F.rda),我应该如何在使用 quantmod 的环境中调用这些文件。

已编辑

我错过了这一点我想从 getSymbols() 调用而不是 load() 因为我需要更多的时间控制系列

例如

 getSymbols('AAPL',src='rda',from="2010-02-02",to="2011-01-01")

来自quantmod包中getSymbols()documentation

Current src methods available are: yahoo, google, MySQL, FRED, csv, RData, and 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 在评论中所做的陈述。尽管文档以相当隐蔽的方式描述了这一点,但通过阅读有关 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 中描述的错误似乎无法重现。