在以前的文章中,我展示了如何从Twitter(twitteR),Yahoo Finance(quantmod),Guardian(guardianR)和OECD(R包)中检索和使用数据。在这篇文章中,我将展示如何使用可用的R包,使用API密钥访问FRED数据:fredr。作者还发布了有关fredr软件包入门的良好文档:http://sboysel.github.io/fredr/articles/fredr.html
我以美国国内汽车生产和进口汽车销售为例,演示了FRED时间序列数据的数据检索过程。
第一步是在R脚本中设置FRED API密钥。为此,您必须在FRED上注册并复制粘贴API密钥。您可以在这里执行以下操作:https://research.stlouisfed.org/useraccount/apikey
# 从CRAN安装软件包
#install.packages("fredr")
# 加载包
library(fredr)
# 设置fredr API密钥
fredr_set_key(api_key) # api_key字符串必须从 https://research.stlouisfed.org/useraccount/apikey
使用fredr_set_key函数设置FRED API密钥后,fredr_series_search_text函数将启用FRED数据库中的时间序列搜索:
# 搜索汽车生产系列的数据库
search_ls <- fredr_series_search_text("car production")
# 查看系列搜索结果列表的列名
colnames(search_ls)
## [1] "id" "realtime_start"
## [3] "realtime_end" "title"
## [5] "observation_start" "observation_end"
## [7] "frequency" "frequency_short"
## [9] "units" "units_short"
## [11] "seasonal_adjustment" "seasonal_adjustment_short"
## [13] "last_updated" "popularity"
## [15] "group_popularity" "notes"
fredr_series_search_text函数返回一个汇总搜索结果的列表,提供相关ID和重要数据集特征(例如,例如季节性调整。
使用fredr_series_observations,可以通过指定相关的序列ID来检索所需的时间序列数据。使用do.call函数,可以将返回的时间序列列表转换为可在ggplot2中绘制的数据帧:
# 加载ggplot2 R包
library(ggplot2)
# DAUPSA是按季节调整的每月国内汽车产量(单位)的ID
series_ls <-fredr_series_observations(series_id = "DAUPSA")
# 将系列列表转换为数据框
series_df <- do.call(cbind.data.frame, series_ls)
# 绘制数据
ggplot(series_df) + geom_line(mapping = aes(x=date,y=value),
color = "red") +
ggtitle("Monthly US car production, seasonally adjusted [in thousands]") +
xlab("time") +
ylab("monthly cars produced [thousands of units]")
上图总结了自1993年以来美国国内汽车产量(单位为月,经季节调整)。可以看出,历史产量下降了。
但是新车的进口呢?下面我重复上述工作流程,以季度报告和季节性调整的十亿美元进口新车销售:
# B149RC1Q027SBEA是在美国国内销售的季节性调整后的进口新车的ID,价值数十亿美元
series_df <-do.call(cbind.data.frame,
fredr_series_observations(series_id = "B149RC1Q027SBEA"))
# 绘制数据
ggplot(series_df) + geom_line(mapping = aes(x=date,y=value),
color = "red") +
ggtitle("Quarterly US imported new car sales, seasonally adjusted [in billion USD]") +
xlab("time") +
ylab("quarterly new imported car sales [billion USD]")
专业领域为优化和仿真的工业工程师(R,Python,SQL,VBA)
Leave a Reply