【数据科学】R中使用DataMarket的公开数据源
在如今的商业世界中,各种数据和统计数字是非常重要的决策依据,但良好的数据通常很难获得。因为数据来源分散而且格式不一,世界各地的分析人员往往花费了无数的时间进行数据检索、复制、粘贴和清理。
DataMarket.com是2010年推出的一个数据门户网站,可以一站式访问各种公共和私营部门组织的统计数据和结构化数据。这使得用户非常方便的查找、比较、可视化和下载各类机构的公开数据,如联合国,世界银行,欧盟统计局。时间序列数据还可以与新闻事件相关联,并可以用任何选定的数据格式使用到任何地方。
我们在之前的博文中曾提到过DataMarket的数据源,本文简单介绍一下如何更方便的在R语言中调用DataMarket数据。
首先安装rdatamarket扩展包并加载
install.packages('rdatamarket')
library(rdatamarket)
然后在Datamarket网站中搜索你需要的数据,例如中国的CPI数据,将网址复制下来,再使用dmlist命令将其转化为dataframe格式,以方便进一步处理。
data=dmlist('http://datamarket.com/data/set/148w/inflation-consumer-prices-annual#display=line&ds=148w|ga2=v.39.4f')
head(data)
其结果如下所示:
Country Year Value
1 China 1987 7.219986
2 China 1988 18.736427
3 China 1989 18.333044
4 China 1990 3.058311
5 China 1991 3.543575
6 China 1992 6.340345
数据中默认包含了香港和澳门地区,如果你想单独研究大陆地方也很容易
newdata=split(x=data,f=data$Country)
另一种命令dmseries则将原始数据转化为时间序列格式zoo,其使用方法也是类似的
timedata=dmseries('http://datamarket.com/data/set/148w/inflation-consumer-prices-annual#display=line&ds=148w|ga2=v.39.4f')
如果希望获取元数据信息则使用dminfo命令
info=dminfo('http://datamarket.com/data/set/148w/inflation-consumer-prices-annual#display=line&ds=148w|ga2=v.39.4f')
print(info)
从下面的结果可以看到此数据是由世界银行提供,引用的IMF数据
Title: "Inflation, consumer prices (annual %)"
Provider: "World Bank" (citing "International Monetary Fund, International Financial Statistics and data files.")
Dimensions:
"Country" (180 values):
"Afghanistan"
"Albania"
"Algeria"
"Angola"
"Antigua and Barbuda"
[…]
来源:http://www.r-bloggers.com/lang/chinese/552
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!