第 1 章 写在前面
拳分南北,国分南北吗? 一代宗师
1.1 为什么写本书
初次接触R是在2014年的秋天,我正处于博士生4年级的第一个学期。在波士顿访学的我,拿到了从国内寄来的U盘,里面是我博士论文需要用到的数据。怀着激动的心情打开U盘之后,我就傻眼了。U盘里面是三个Microsoft Access 文件,废了九牛二虎之力才把数据导出成为csv文件,三个文件的大小分别是60万行、10万行与40万行。接下来,更大的挑战是如何在一个统计软件里面同时操纵这三个“大数据”。stata14与SPSS只能对一张表进行处理,并不能胜任这项工作。于是,在走投无路的情况下,我下载安装了R,并在R的助力下艰辛地完成了我的毕业论文。
作为一个非科班毕业的程序员,我在一开始使用R的时候,我也试图使用市面上最流行的基本教材来入门,但都以失败告终。现有的教材或者是代码陈旧,不适用于最新的问题,或是内容过于琐碎,学习曲线过长。更重要的是,市场上很难找到针对经济学研究需求的教材,例如没有教材涉及如何使用R进行因果推断,这造成我面临的绝大多数问题都无法在教材中找到答案。最后,我只能边coding边google,在实践中学习,从论坛上学习。这期间,我经常会一个问题卡住一整天,甚至一周,尝试了论坛里面的各种方法而不得解(例如中文乱码、rjava的安装等问题),非常沮丧。还有些时候,往往能搜到多个解决方案,我无法分辨那种方案是最有效的,只能以随机遍历的方式自学,走了不少弯路,效率比较低。每当这些时候,我都希望能有一本“武功秘籍”帮我指一条明路,告诉经济学研究的“小白”在特定的情形下,哪种工具最合适,这种需求是促成为写这本书的内在原因。
2017年春季学期开始,我在上海交通大学给国际与公共事务学院的本科二年级学生教授R语言编程,对于教材的需求更加强烈,这是促成写这本书的外在需求。与此同时,我在教学过程中系统地梳理了R语言的主要内容,并在三年的教学中不断尝试修改课程的内容与重点,课程的教学课件与讲义是本书写作的基础素材。
更重要的是,当我开始构思这这本书的时候,遇到了我的师兄,清华大学的物理学家续本达教授。续本达教授涉猎天文学、物理学以及计算机等多个学科,在与他的交流中,我意识到,经济学研究中的数据处理流程可以放在更加普遍的数据工程的视角下加以规范与看待。如同时下大流行的数据科学一样,数据工程将会发展成为一个新兴的独立学科体系,为各学科的数据分析提供统一的框架与处理工具。于是我邀请续本达成为本书的合作者,他也欣然答应,这为本书的写作提供了重要的理论支持。
我们对本书的定位并不仅仅是又一本介绍R语言的工具书,而是把本书置于统一的数据工程思想与理论下的教材,本书介绍的数据工程理论应该是具有一般性的,是所有学科的科学家通用的,通过本书的学习,读者可以对数据工程的思想与工具有初步认知,并以R语言为工具加以实现。
第二,本书又必须是面向经济学家和其他社会科学研究人员,以及相关专业学生的。特别是其中的两类人,或是面临大量数据需求,或是希望未来从事数据相关的但是又是以社会科学理论为出发点的工作。例如广告公司、互联网公司会招聘大量的经济学家。因此,本书的案例将主要来自社会科学的实际需求,并在内容安排上考虑读者的技术基础与学习曲线。此外,本书还加入经济学的特色内容,例如,因果推断的相关工具。
最后,我们希望这本书是一个全面但是又精简的武器库。一方面,我们希望这本书可以覆盖经济学研究中的绝大多数问题,并且对深入的个性化的问题能够提供一个读者未来自学的接口(API);另一方面,我们又希望这本书不是冗余的无所不包的百科全书。因此,对于每一个具体的问题和功能,本书只选择我们认为的最有效的工具加以介绍,而不加入任何冗余的信息。
希望这本书可以带你走进精彩的R语言世界!