案例背景
过去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的变化趋势图,从而研究经济周期变化。
网络数据
有关网络数据质量仍然存在一些缺陷。必须牢记信息的来源,这些信息可能是一手的,也可能是由离线数据源复制而来的二手数据,甚至是拼凑出来的。
这些问题在你从事科研工作时很可能会遇到,要解决科研中的问题,哪种类型的数据是最合适的?数据质量足够高么?获取信息是否有系统性的缺陷?科研设计或处理数据噪声时采取哪些高级统计方案?这就需要第二个数据源来验证内容的质量。这样交叉检验对于任何二级数据源都应该是标准的程序。
领取专属 10元无门槛券
私享最新 技术干货