我正在使用quantmod
库(作者Jeffrey A. Ryan)从FRED下载数据。使用 Yahoo 和 Google 数据,我可以设置开始日期和结束日期。是否可以为 FRED 数据做同样的事情?
帮助页面没有列出“from”和“to”作为quantmod的getSymbols函数的选项,我从中推断出它当前不可能。
有没有办法为要下载的数据设置范围,还是需要下载整个数据集并丢弃我不需要的数据?
感谢您的帮助。下面的代码说明了上下文:
从FRED下载时忽略日期:
# environment in which to store data
data <- new.env()
# set dates
date.start <- "2000-01-01"
date.end <- "2012-12-31"
# set tickers
tickers <- c("FEDFUNDS", "GDPPOT", "DGS10")
# import data from FRED database
library("quantmod")
getSymbols( tickers
, src = "FRED" # needed!
, from = date.start # ignored
, to = date.end # ignored
, env = data
, adjust = TRUE
)
head(data$FEDFUNDS)
head(data$FEDFUNDS)
FEDFUNDS
1954-07-01 0.80
1954-08-01 1.22
1954-09-01 1.06
1954-10-01 0.85
1954-11-01 0.83
1954-12-01 1.28
编辑:解决方案
感谢下面的 GSee 建议,我使用以下代码将数据子集化到上面指定的日期范围内:
# subset data to within time range
dtx <- data$FEDFUNDS
dtx[paste(date.start,date.end,sep="/")]
这里我在对其进行处理之前从环境中提取了xts数据。我的后续问题探讨了替代方案。
跟进问题
我在那里问过一些后续问题:get xts objects from within an environment
答案 0 :(得分:6)
您必须稍后下载所有数据和子集。 getSymbols.FRED
不支持from
这样的getSymbols.yahoo
参数。
答案 1 :(得分:5)
或者,您可以从Quandl(http://www.quandl.com/help/r)下载FRED数据,该数据提供超过400万个数据集,包括所有FRED数据。有一个API和R包可用。 ( “Quandl”)。数据可以以多种格式返回,例如数据框(“原始”),ts(“ts”),动物园(“动物园”)和xts(“xts”)。 例如,要下载GDPPOT10并指定日期并将其作为xts对象返回,您只需:
require(Quandl)
mydata = Quandl("FRED/GDPPOT", start_date="2005-01-03",end_date="2013-04-10",type="xts")
答案 2 :(得分:1)
Quandl似乎没有提供FRED的所有数据,至少在数据频率方面如此。 Quandl最有可能只提供在许多情况下无用的年度数据。