首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据爬虫案例1:CPI经济数据研究

案例背景

过去20年,互联网的快速发展改变了我们分享、收集和发布数据的方式。企业、政府机构和个人用户都提供了各种类型的信息,新的沟通渠道也带来了有关人类行为的大量数据。

社会科学领域曾经的根本性问题——观测数据稀缺和难以获取的情况,随着ICPSR等优秀数据库的出现,不断变得丰富。

而面对网络中的海量数据,我们既没有时间,也没有意愿进行数据的手工采集,并且我们经常需要对各种来源的数据进行手工整理格式规范,这种方式易于出错、缓慢复杂,而且提高了工作烦躁度。

R语言集成了数据采集的相关packages,这些packages提供了一套很好的基础架构,可以把日常工作流程扩展为实际数据分析前后的步骤。

网络爬虫

当研究数据来源集中于网络(在线数据)时,可采用网络抓去或统计性文本处理技术,甚至是自动化/半自动化数据收集。

对于R语言的入门操作,请点击公众号菜单栏检索更多入门基础教程。

CPI研究

R中有着大量支持在线数据获取的packages

本案例使用XMLpackages完成。

安装相关packages

这一步告诉R,需要导入的数据是以HTML网页形式出现的。R有对应解析HTML的packages,HTML是一种超文本标记语言,R知道在这种文件格式下的表格、标题或者其他元素构成的方式。

(注:如果你并不熟悉HTML,下期推送将帮助你更多的了解在线数据抓取的基础知识)

htmlParse()函数实现html网页的解析。

2.以经济研究数据库InflationData上的历史CPI数据获取为案例

https://www.inflationdata.com/Inflation/Consumer_Price_Index/HistoricalCPI.aspx?reloaded=true

readHTMLTable()函数提供了在HTML或ftp:的链接中找到表格内容的稳定方式。

(注:部分海外网站可能需要VPN获取数据资源)

参数说明:

doc

URL链接

header

高峰论坛

透明革命方法论

colClass

列类型

skip.rows

整型值。表示被忽略行

trim

逻辑值。是否从单元格中删除头尾部的空白

elFUN

单元格转换

as.dada.frame

逻辑值。将结果转换为数据表,还是保留为矩阵

现在,我们需要的所有信息都存储在对象里了。

3.数据刷选

网页中的表格变量并不是我们所需要的,我们需要刷选出特定的信息,因此需要对表格中变量名称进行重新标记。

4.数据清洗

很多数据在导入到R中,数据类型可能会被转化。这里我们使用正则表达式对数据进行处理。

它的表达式是[[:digit]]4$

(注:正则表达式应用请在公众号私信“正则表达式”,查看早期推送内容)

5.可视化

得到数据之后,我们可以使用ggplot2或者plot()函数直接绘制出CPI的变化趋势图,从而研究经济周期变化。

网络数据

有关网络数据质量仍然存在一些缺陷。必须牢记信息的来源,这些信息可能是一手的,也可能是由离线数据源复制而来的二手数据,甚至是拼凑出来的。

这些问题在你从事科研工作时很可能会遇到,要解决科研中的问题,哪种类型的数据是最合适的?数据质量足够高么?获取信息是否有系统性的缺陷?科研设计或处理数据噪声时采取哪些高级统计方案?这就需要第二个数据源来验证内容的质量。这样交叉检验对于任何二级数据源都应该是标准的程序。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180518G1PJRC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券