R语言:从数据思维到数据实战(txt+pdf+epub+mobi电子书下载)


发布时间:2021-03-30 01:44:04

点击下载

作者:朱雪宁 等

出版社:中国人民大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

R语言:从数据思维到数据实战

R语言:从数据思维到数据实战试读:

推荐序一

[1]王汉生(熊大)

编程语言之于数据分析是必不可少的。对于一个数据科学的新兵,应该从哪门语言开始?摆在面前的选择很多:R,SAS,Python,C,JAVA,甚至Fortran。它们各有优势,也有不足。如果一定要选一个,我推荐R。有两个重要原因:第一,R是免费的,全球镜像,非常方便。第二,R的分析建模能力很强,部分得益于基础模块的完善,部分得益于整个统计学社区的支持。很多最新的分析方法、统计模型都是用R首先实现,并被开发封装成为程序包的。当然,这绝不是说R语言是完美的。它显然不完美,还有很多缺陷。但是,这丝毫不妨碍它成为你学习数据分析的第一门语言。正因如此,狗熊会(微信公号)决定要写一本关于R语言的书,要写一本带有狗熊会强烈DNA印记的R语言入门教材。但是,谁来写?谁来当这个“倒霉蛋”呢?

这个“倒霉蛋”不能是我。在狗熊会的团队里,我岁数最大,有耍赖皮的特权,当然不会“压榨”自己,我更擅长“压榨”其他小伙伴。那该“压榨”谁?只能是布丁(朱雪宁)。在狗熊会的联合创始人团队里,布丁的R编程能力公认是最强的。说来惭愧,我是布丁的博士导师,但布丁的理论功底似乎比我还好,而编程能力更比我高出不知几个量级。有时,我会有点懵圈,似乎没教过布丁什么东西,怎么就当了布丁的老师呢?她是怎么成长得如此优秀的呢?思来想去,或许我的一丢丢贡献在于点燃(或者加强了)布丁在数据分析中获得快乐。

布丁天生乐观,而且,她把数据分析的快乐完美地带入了R语言编程。单就汉字分词、频数统计,布丁竟然将之跟《张无忌到底爱谁》扯上了关系。这成了狗熊会第一个阅览量过万的推文。我和小伙伴们都惊呆了!说句实话,对此我很困惑。我认真看过这篇推文多遍,实在看不明白布丁在说什么。我对该作品的印象就是语无伦次,逻辑混乱,不知所云,各种差评。但是奇怪,熊粉们怎么就这么喜欢呢?也许是我老了吧。不得不承认,代沟是存在的。但是,我能感受得到,跳跃在R代码和《张无忌到底爱谁》文字之间的、布丁那肆无忌惮的快乐。对,这就是布丁的快乐、布丁之于数据分析的快乐。

还说汉字分词、两样本检验、逻辑回归,布丁将之跟《红楼梦作者之谜》扯上了关系,引得众多读者点评布丁的作品,其中既有普通熊粉,也有备受尊重的资深学者,布丁不敢怠慢,逐条答复。不得不承认,我有一点幸灾乐祸的窃喜。我想布丁的内心一定非常崩溃:“我就做了一个好玩的中文数据分析,纯娱乐项目,你们怎么当真了呢?”这就是布丁的快乐、布丁之于数据分析的快乐。

布丁是一个优秀的领导者。在她的周围,团结着一帮弟弟妹妹,他们一起构成了布丁小分队(或者叫“敢死队”)。据说,布丁对弟弟妹妹们“手段凶残”,“压榨”无数。但奇怪的是,弟弟妹妹们却非常喜欢这位学姐,亲切地称她为雪姨,并且坚定不移地跟随雪姨闯荡数据江湖。为什么?我斗胆猜测,原因还是快乐。大家在一起,互相学习,互相督促,一起享受数据分析的快乐,一起享受成长的喜悦。我很喜欢这样一个团队架构。碰到极具艰难的任务,我可以通过“压榨”布丁,布丁再“压榨”她的小分队,达到很高的团队执行力效果。这本书的出版就是一个很好的例子。这本书是我“强派”给布丁的,然后布丁把控整体设计以及很多核心内容,但是,还有很多内容是由其他小伙伴完成的,他们分别是(按姓名拼音排序):常象宇(政委)、成慧敏、范超、李宇轩、鲁伟、潘蕊(水妈)、王健桥、王毅然、向韵桦。对此,我一并感谢,并对大家处在狗熊会“食物链”的底端深表同情。

我是不是跑题了?布丁给我的任务是给本书写序,却谈到了食物链。不,我没有跑题。我想告诉大家的是,这本书的核心不是R语言,是快乐,是数据分析的快乐,是跟布丁学习R语言的快乐。注释[1]北京大学光华管理学院商务统计与经济计量系系主任,教授,博士生导师。

推荐序二

[1]谢益辉

很惭愧,本人还没写几本书,序倒是写了好多篇,俨然已成为作序专业户。不过这次我很荣幸也很乐意为狗熊会摇旗呐喊一嗓子,因为我打心底认同狗熊会的朴素价值观——数据创造价值。这六个字在我看来分量相当重,尤其是在统计学术界颇为难得。如果是我,恐怕没勇气发起这个冲锋,因为我深知公式、定理、模型都是优雅的,而现实中的数据多半是混沌到让你分分钟想掀桌的程度。想用数据创造价值,需要莫大的毅力、耐心和智慧。就算作为一个跟统计沾点边的码农,我也是怯懦地选择了写代码而不是做数据分析,因为我知道后一条路不好走。

在我看来,本书最大的特色是集成了狗熊会这两年大量数据分析案例,而且这些案例都很新潮、实际。我个人最钟爱的还当属老王卖耗子药的万能例子(虽说是虚构的,但这个场景我总觉得很好笑)。我跟熊大只在2016年中国R语言大会期间某食堂餐桌上匆匆打过一次照面,也只听过他一次报告。还记得他在台上吆喝“全宇宙的中心——五道口”惹得我们统计之都的“萌主”(周扬,也是著名“段子手”)在后排嘿嘿一乐,深刻体现了熊大争做网红的决心。我个人完全支持统计学教授做网红,至少听众笑过之后还能留下点思考和知识。可能是受网红路线的影响,这本书也颇有网红风:热门电影、小说、事件等都在书中的案例里有所涉及。分析你关心或能吸引你注意的数据也许能让你更专心地阅读这本书。

本书的另一特点就是很细致。对我这样的读者来说可能细致得有点“令人发指”,比如我肯定没有耐心介绍如何下载安装R,或是如何在浏览器中查看HTML元素。所以写书能完全从新手的角度出发挺难得的,宁可过于细致,也不要贸然假设读者已经拥有某些基础知识。细致的好处在于你学一样就能会一样,而不必再翻别的资料补课。

就写作风格而言,本书内容比较通俗,没什么晦涩的专业术语,我觉得也很好。在模型技术方面,书中除了机器学习一章中简略提及几个稍高等的模型之外,基本以探索性分析和回归为主,这也符合我本人对简单模型的偏爱(没办法,我数学太差)。

本着君子和而不同的精神,以及对狗熊会求真进取精神的信任,我想坦诚地说,世上没有哪本书会是完美而全面的指南,作者和编者一定会有所取舍,比如要顾细致就不能求全面。我相信这本书会为新手打开R的大门、教给读者大量实用技能,但有雄心壮志的读者应该在此基础上继续深造。最近几年恰逢R社区比较“动荡”,这个“动荡”主要源于一个Tidyverse门派(我戏称为“极乐净土”)的异军突起。我自己作为R老用户,看到本书中的代码非常亲切和熟悉,因为我就是这样学R的,但我觉得从今往后,尝试往Tidyverse数据分析范式转型会让很多业余数据分析者受益。

本书主要作者雪宁在统计之都网站也担任主编数年,其领导风范、专业水平和敬业态度都让我深感敬佩。上可推公式,下可敲代码,办事有条有理、有始有终,可谓狗熊会中诸多英雄的突出代表。写作本书想必耗费了主编不少心血,当然,各章节的作者也付出了大量努力(狗熊会的标准向来比较严苛)。我衷心期待更多人能通过这本轻快又实在的书了解数据分析的乐趣和技能,并进一步找到自己独特的用数据创造价值的法门。注释[1]统计之都网站创始人。前 言朱雪宁(布丁)

两年前,狗熊会微信公众号刚刚投入运营,到底写点什么好呢?因为我对R语言更加熟悉,熊大(王汉生)就提议我来牵头组织关于R语言数据分析的专栏,还取了一个相当文青的名字“R语千寻”。写了几篇后,没想到竟然收到不错的读者反馈,这个专栏也就逐渐固定下来。我们意识到,R语言是一种有力的工具,在实际案例、数据分析中有无限的魅力,而“R语千寻”结合实际数据进行案例讲解的形式也受到许多朋友的喜爱。

自建立以来,“R语千寻”专栏迎来了越来越多的创作者,积累了丰富翔实的内容。于是,就有了对这些内容适时系统地梳理、总结,形成一本结合丰富的数据与案例教学的R语言数据分析书籍的想法。对“R语千寻”专栏而言,这并不是一个终点。在未来的日子里,“R语千寻”将继续为大家推出有意思的故事与有趣的分析,也希望收到更多读者朋友的反馈。

本书适合刚刚入门或者了解R语言但还没有认识到R语言在实际数据分析中强大威力的朋友。或许你是一个编程小白,渴望入门一种较为容易上手的编程语言,但又在庞大的知识体系前望而却步;或许你还在求学,本学期刚刚学习了R语言课程,但是你想了解的不止于如何生成一个数组或者矩阵这么简单;又或许你是一个业界从业者,逐渐认识到手上开始积累越来越多的数据,它们也许能产生巨大的商业价值,而你却无所适从。本书希望能带给你一些感悟。

在这个最好的时代,我们有能力收集、积累大量的数据;数据分析、人工智能也正处在前所未有的风口上。正如狗熊会出品的第一本书——《数据思维》所强调的那样,最重要的是完成从数据到价值的转换。本书希望告诉大家,这种转换不仅需要培养严谨的数据分析思维,同时也要具备踏实的实务分析能力。如何将业务问题转变为数据可分析问题呢?对于现实中可能并不“美”的数据,如何清洗,如何描述,以及如何建模和解读呢?所有这些步骤,我们通过具体的R语言实务分析,向大家一一解读。

对于从事数据分析的人来说,这还不够,工作的需求往往不止于此。数据分析工作每天面临的是大量的细节。曾经以为数据分析就是玩转高大上的模型,然而入行后你才会发现,80%的时间你将用来理解业务、清洗数据、描述规律、大胆假设、小心求证……最后真正上模型的时间,通常也就不过剩下的20%而已。在所有的过程中,事无巨细,如果能熟练使用R语言,它将成为你得力的帮手。经常听到这样的抱怨:R语言处理实际数据太慢!我们应该去学C,Java。而实际去看看那些抱怨的人写出的代码,虽然能达到最终目的,但是效率却惨不忍睹!适当的转变编程思路,改用一两个函数或者R包,编程效率往往能数以十倍地提升。所以,那些每天喊着打语言仗的人真的不如花点时间稍微提高一下R编程的知识水平。在作者看来,急于学习多门语言不如先精通一门语言。

在内容组织方面,本书从R语言简介及优势入手,再到数据描述、建模等数据分析的各个环节,由浅入深,组成不同章节。第1章介绍R语言的背景、优势,用幽默的语言告诉你“R语言能做什么”。第2章介绍基本数据操作,包括数据基本类型、数据读写,这些组成了R语言应用的根基。第3章介绍R语言与统计分析,包括三大利器:描述分析、统计检验、回归分析,这些环节在实际的数据分析中缺一不可。第4章解读R语言与非结构化数据分析,主要包括无处不见的文本数据和图像数据。第5章介绍如何用R语言进行当下最火的机器学习建模,从数据清洗到模型集成、建模调参一网打尽。第6章介绍R语言的爬虫原理及技巧。本书对于R语言的整个知识体系框架也许不是涉及最广的,但是希望能对实际数据分析产生直接的借鉴作用。

本书由狗熊会核心创作团队齐心协力完成,希望向大家展示R语言有趣、实用、高效的一面。参与创作的成员有(按姓名拼音排序):常象宇(政委)、成慧敏、范超、李宇轩、鲁伟、潘蕊(水妈)、王健桥、王毅然、向韵桦;参与本书整理、校对的同仁有(按姓名拼音排序):何通、杨瀚轩,感谢所有参与成员付出的巨大心血和努力。本书还要特别感谢狗熊会CEO李广雨先生给予的鼓励和支持;感谢蔡知令教授、王汉生教授在写作过程中关于内容组织、时间安排等提出的宝贵建议;感谢狗熊会所有同事提出的宝贵建议以及细致的审查意见;感谢中国人民大学出版社李文重编辑在书稿形成、章节安排等方面付出的巨大努力。

另外,本书中引用的图片除特殊标注外均来源于网络,鉴于引用这些图片时无法获知原创作者及出处,在此对原创作者统一表示感谢。

最后,把本书献给所有培养过我们的老师、企业合作伙伴;献给我们的朋友、家人。正是因为有你们,我们才能站在更高更大的舞台上,施展抱负,勇往直前。在这里,再次想起狗熊会的理念:聚数据英才,助产业振兴。同时,也祝福狗熊会的明天会更好,愿越来越多志同道合的小伙伴加入我们,分享数据分析带给你的快乐。由于本书写作仓促,疏漏之处在所难免,请大家多多批评指正!第1章/Chapter One初识R语言1.1 初识R语言

R语言可以说是一款在开源世界里集万千宠爱于一身的软件,你能想到的地方都有它的身影。[1]

做学术,看看权威的TIOBE开发语言的排行榜(见图1-1)!图1-1 R语言热门程度

听讲座,看看每年都会举办的中国R语言大会的阵容(见图1-2)!图1-2 中国R语言大会现场

找工作,看看与R语言相关的工作(见图1-3)!图1-3 与R语言相关的工作

如果还不够,看看每年让你“剁手吃土”的它们同样在用R(见图1-4)!图1-4 让你“剁手吃土”的它们1.1.1 R语言是什么?

R是一个有着强大统计分析功能及作图功能的软件系统。图1-5[2]是它的界面示意图。

说到R语言的发展历程,还要先从另一门语言S谈起。 S语言是由AT&T贝尔实验室John Chambers等开发的一种用来统计编程的语言。它目前有两种实现版本:一种是由TIBCO经营的商业软件S-plus;另一种就是免费开源的R语言。图1-5 R界面示意图

1992年,Auckland大学的Ross Ihaka和Robert Gentleman(见图1-6)为了能够更有效地开展大学统计入门课程的教学,决定引入S语[3]言来开发一套软件。1994年该软件最初版本基本成型,这就是R的雏形。图1-6 R语言的“创始人”1.1.2 为什么要使用R语言?

R语言让人爱不释手的出色特征可以概括为:物美价廉,兼收并蓄,是集万千力量于一身的优秀软件。

1.物美价廉——作图颜值高且完全免费

物美,主要体现在卓越的作图功能。点图、线图、柱状图、直方图,R语言样样精通,而且设计感非常好。比如可以画如图1-7所示的图。图1-7 R作图示例(1)

如果对R中的基本图形稍作修饰,还能把聚类结果画成如图1-8。图1-8 R作图示例(2)

更可以把北京出租车轨迹图画成如图1-9。图1-9 R作图示例(3)

R语言可挖掘的有趣的东西太多,任由你发挥创意。更为重要的是,它完全免费!它是世界各地有开源精神的极客们共同贡献的精品。

2.兼收并蓄——算法覆盖广,软件扩展易(1)算法覆盖广。作为统计分析工具,R语言几乎覆盖整个统计领域的前沿算法。从火爆的神经网络(下围棋的机器狗脑袋里的东西)到经典的回归分析(见图1-10),数千个R包,上万种算法,你都能找到可直接调用的函数实现。图1-10 回归分析与神经网络(2)软件扩展易(见图1-11)。作为一款软件系统,它有极方便的扩展性。如果数据原来存在Oracle中,可轻松导入;如果数据在MySQL中,照样解决。文本文件、数据库管理系统、统计软件、专门的数据仓库等都可兼容。同时,它可以将数据输出并写入这些系统中,甚至能轻松与各种语言完成互调,比如Python,C,都可无缝对接。图1-11 R与其他语言

3.集万千力量于一身——强大的社区支持

作为一款开源软件,R背后有一个强大的社区和大量的开放源码支持,获取帮助非常容易。比如国外比较活跃的社区有Git Hub和Stack Overflow等,通常R包的开发者会先将代码放到Git Hub,接受世界各地的使用者提出问题、修改代码等操作,等代码成熟后再放到CRAN上发布;而Stack Overflow则是一个优质的IT技术问答网站,当你通过谷歌搜索R问题时,通常会看到该网站的回答排在首位,可见该网站的搜索热度有多高。而国内最活跃的R社区当属统计之都以及统计之都旗下的COS论坛,统计之都经常发布与R相关的优质文章,还会不定期举办线下研讨会,以及规模巨大的中国R语言大会(见图1-12);COS论坛则是中文R语言技术问答社区。它们都对R语言学习者具有很高的参考价值。图1-12 王汉生教授在中国R语言大会上发言1.1.3 R语言的其他技能(1)用程序为自己画肖像(见图1-13)。图1-13 用R绘制自画像(2)自己写程序开发游戏(见图1-14)。图1-14 用R开发游戏(3)抢红包为何手气最佳的总不是你?写个程序就可看到分红包的具体算法(见图1-15)。图1-15 分红包算法

R语言神奇酷炫的技能远不止这些,更多精彩后面揭示。从下一节开始,我们就从R软件及各种R包的安装运行开始,手把手教你R语言如何从入门到精通!注释[1]TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如谷歌(Google)、必应(Bing)、雅虎(Yahoo!))以及维基百科(Wikipedia)、亚马逊(Amazon)、You Tube统计出的排名数据,用来反映某种编程语言的热门程度。[2]别看R的页面很丑,但R可是统计、计算样样精通。不过,这是个颜值可以统领世界的年代,我们之后将介绍一款更加美观的编辑器。[3]Ross Ihaka,The R project:A Brief History and Thoughts About the Future,https://www.stat.auckland.ac.nz/~ihaka/downloads/Massey.pdf.1.2 安装R语言1.2.1 R的获取和安装

获取和安装R很容易(这也是它“亲民”的地方),具体步骤如下:

Step 1:登录R语言官方网站https://www.r-project.org(见图1-16),点击download R。图1-16 R官方网站

Step 2:在弹出的镜像(Mirrors)页面(见图1-17)上选择合适的镜像入口(见图1-18)。如果你在中国,直接选择China下离你近的一个镜像即可。图1-17 镜像页面图1-18 选择合适的镜像入口

Step 3:选择镜像后就会跳转到下载页面,此时即可根据自己电脑的操作系统点击选择(见图1-19)。图1-19 根据电脑操作系统选择并安装

下面分别介绍在Windows和Mac OS X系统安装的区别。

1.Windows下安装

点开Download R for Windows之后界面如图1-20所示。

网站上提供了两类Windows上的R安装文件:base和contrib。后者是一个包含所有扩展包的Windows二进制安装文件,而前者仅仅是包含基本功能的二进制版本。由于我们之后还会不断安装自己需要的包,所以在安装阶段选base版本就可以。图1-20 Download R for Windows界面

安装成功之后,在开始菜单中就会弹出R应用程序的图标,点击该图标,就同时打开了R图形用户界面(RGui)和R控制台(R Console)(见图1-21)。图1-21 Windows系统R界面

2.Mac OS X下安装

在Mac OS X上安装就更简单了,进入R官网,选择Mac的二进制版本(binary for Mac OS X),下载pkg格式文件安装即可(见图1-22)。图1-22 Download R for Mac OS X界面

安装后,可以在Applications文件夹下找到它,打开的界面如图1- 23所示。图1-23 Mac OS X系统R界面【科普小知识】

1.CRAN是什么?

它是Comprehensive R Archive Network的简写,是拥有同一资料包括R的发布版本、包、文档和源代码的网络集合。

2.镜像CRAN Mirrors是什么?为什么要选择一个镜像?

所谓镜像站,就是把一个网站资源的副本放在镜像服务器上,也就是说登录不同的镜像网站都跟登录主网站一样。而选择一个离我们近的镜像主要是为了下载得快!当然如果主站不小心坏掉,镜像网站也是一个很好的后备。

3.上面提到的安装二进制版本,是唯一的安装方式吗?

并不是,二进制是一种编译好的版本,不满足于基本配置并熟悉源代码安装的也可以采用“源代码”安装方式,当然这需要其他编译器,感兴趣的读者可以去谷歌搜索。1.2.2 R的升级版武器:RStudio介绍

上面对R语言的基础版本做了介绍,但很多人都嫌弃它的界面简陋,下面就来介绍R语言的升级版武器——RStudio(见图1-24)。图1-24 RStudio界面

RStudio是一个R语言的集成开发环境(IDE)。所谓集成开发环境,就是把你做开发工作所需要的代码编辑器、编译器、调试器等工具都集成在一个界面环境下,方便同时使用。

接下来通过一个简单的示例图来详细了解RStudio各个模块的定义以及使用流程(见图1-25)。图1-25 RStudio模块

首先,图1-25左上是代码编辑器,需要先在这里写入你的编程代码。用#可为代码加注释,机器看到它就会自动跳过运行下一行,合理地运用注释可大大增加代码的可读性。

写好代码后,选中或把光标停留在某行,点击run,就会给电脑下指令,让它把代码运行起来。另外,也可以试试快捷键Ctrl+Enter(Mac用户试试Command+Enter),看看是否可以达到同样效果。

在程序运行完毕后,界面会出现三个变化:第一个变化是图1-25左下角的“控制台”,可以看到所有代码的运行结果;第二个变化是图1-25右上角的“工作空间展示区”,可以看到程序新生成或者加载进工作空间的数据、函数等对象;第三个变化是,如果程序中有画图命令,会在图1-25右下角展示出漂亮的图形。这就是一个完整的运行流程了。

RStudio还有很多贴心技能,举例如下:

首先,它的安装不仅支持个人电脑的Windows,Mac OS X,服务器的Ubuntu,甚至在浏览器上都可以通过RStudio Server编辑运行代码,界面与桌面版完全相同,完全没有转移障碍。

其次,在写代码时,它能够自动填补以及快速显示函数定义。下面举一个简单的例子,如果想输入求均值的mean 函数,不需要拼写完整,RStudio就会自动显示出可能用到的完整函数和定义(见图1-26)。另外,与round 函数前面左括号匹配的右括号也自动地跟在mean后面,即使你忘记写了,它也能帮你补全。图1-26 RStudio功能展示1.2.3 R包的获取与安装

这一小节,我们来介绍R中可大大拓展你的分析技能的利器——R包。

1.什么是R包,为什么要安装?

所谓R包,就是一个把R函数、数据、预编译代码以一种定义完善的格式组织在一起的集合(见图1-27)。图1-27 RStudio中的R包

R在安装时会自带一系列默认包(包括base,datasets,stats,methods,graphics等),它们提供了很多功能丰富的函数与数据,大家可以自行调出学习,命令search(  )可以告诉你工作空间里已有哪些包可直接使用。当然,如果需要装备更多、更厉害的拓展技能,就需要安装新包来实现了。

2.怎样安装包?

一般的安装做法有两种:一种是通过CRAN服务器安装;另一种是从Github下载安装,可作为第一种的补充。

第一种方法最常用。在RStudio中有两种方法实现:一种是直接通过命令装包:install.packages("package_name" );另一种是选中如图1-25所示的右下方界面中的Packages后,点击Install,就会弹出如图1-28所示的方框,直接在其中输入包的名称即可。图1-28 RStudio安装R包

另外,细心的读者可能会发现这里竟然不能选择镜像!对,RStudio默认采用的是Global镜像,如果想换成本地镜像,可以点击“Tools→Global Options”,打开Options界面(见图1-29),在Packages选项卡中更换镜像。图1-29 RStudio更换镜像

第二种方法:通过Github安装。前面介绍过Github网站,新手建好包一般会先放在那里接受群众“检阅”,因此就有了一个下载新包的渠道——Github。一个R包在Github上的呈现如图1- 30所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载