本月初,外媒公布了一项最新调查:
美国五大科技公司工作中应用最多的十大编程语言,其中既包括C++、Java这些程序圈的“扛把子”选手,也包括R、Python等当红炸子鸡。纵然和一票经典语言同时上榜,R语言也丝毫没带怕的——该媒体甚至称 R语言自诞生起就打开了“机遇之门”。
媒体对R语言给出如此高的评价,或许是因为它足够百搭。R语言是诞生于1980年左右的S语言的一个分支,如今在金融、生物、互联网等领域都能看到它的身影,它用实力为自己敲开大门,也为各行业创造新的可能。
但随着40多年的发展,R语言自身也已经发生了很多变化。00后初学者今天再看很多经典著作,已经感觉有点枯燥难懂,这意味着:R语言教学也需要一本跟得上读者节奏的新手教程。
小异今天要推荐的这本书恰好就这么应景!它是由哈尔滨工业大学基础数学博士张敬信教授编著的《R语言编程—基于tidyverse》。
▲扫码即可购买书籍
展开全文
多栖教授:为R语言正名!
翻看作者的简历,小异发现从头到尾写着“优秀”两个字!
张教授先在信息与计算科学专业打牢学术基础,然后继续在基础数学领域深造并一举拿下博士学位,年纪轻轻就成为了副教授。
从毕业起,他一直在哈尔滨商业大学任教数学与应用数学专业,至今已经超过10年。自任教第3年,他就扛起了主抓本科数学建模的重任,一直担任“数学建模主教练”。
张教授奉行终生学习理念,一直喜欢跟踪和学习新知识、新技能,因此他还将劳动经济学纳入研究方向,并且担任黑龙江省经济学会理事,还在知乎开通了专栏。
图:作者知乎主页
在研究和工作中,张教授时常用到编程技术与R语言,也观察到R语言教学的“惨淡”现状:绝大多数R语言教材仍在沿用那些 过时的、晦涩的R语法。多数老师和学习者对语言的印象还停留在 5 年前:
“语法晦涩难懂、速度慢,做统计分析和绘图还行。”
“机器学习只有单独算法的包,做不了深度学习、大数据、工业部署……”
这都是张教授在研究R语言过程中听到的抱怨,甚至有人因此丧失了学习R语言的想法。
但仔细一想,R语言如果真的这么作用有限,又凭什么成为国际上大受欢迎的编程语言呢?
显然,是国内的R语言教学有点落后了。
有感于此,张教授也萌生了一个念头: 为R语言正名!
“数学语言与编程语言是相通的,都是用语法元素来表达和解决问题,我想把这些理解体会用符合国人的语言习惯表达出来。”
带着这样的信念,张教授奋笔疾书,完成了这本《R语言编程—基于tidyverse》。他希望读者借由本书能够学到正确的编程思想、最新的R语言编程知识和编程思维,完成 R语言入门或R知识汰旧换新。
干货满满,秒变编程高手!
张教授希望 新手能够一步到位、老手能够温故知新,这样才能兼顾到不同水平的读者。为此,他几乎倾尽所有,有多少给多少,超容量放送内容,颇有“加量不加价”的诚意。
技术足够新
Hadley Wickham 博士是为统计应用领域做出过突出贡献的统计学家,被称为改变了 R 的人。
Tidyverse包是Hadley及团队的集大成之作,是专为数据科学而开发的一系列包的合集,提供了一致的底层设计哲学、语法、数据结构。它集数据导入—数据清洗—数据操作—数据可视化—数据建模—可重现与交互报告整个数据科学流程于一身,以“现代的”“优雅的”方式和管道式、泛函式编程技术实现。
这种整洁、优雅的tidy-流又带动了R 语言在很多研究领域涌现出了一系列tidy-风格的包。
深耕R语言多年的张教授,凭借着对Tidyverse的了如指掌,参阅最新版本R包相关文档给出了这本硬核干货。要知道,这些可全是作者的一手感悟,并非借鉴其他教材与论文的结论,100%是“编出来”的经验之谈,代码部分也全部用最新的R语言技术编写,保证你能走在技术最一线,而不是用陈旧的理论和古朴的代码去应对学习和就业。
作者用R语言最新的Tidyverse讲授知识
内容足够易懂
目前市面上的读物形成了分水岭:
一方面,国外有不少优秀的 R语言编程书,但如果读者英文水平不够,就只能望洋兴叹,就算是有了中文版,翻译也往往就只是“直译”,只把表面意思用生硬的汉语表达出来;
另一方面,国内 R 语言编程书虽然也不少,但大多数只是罗列堆砌编程语法。要知道, 编程最重要的是弄懂底层逻辑和不停实践,只学语法提升十分有限。
“讲得透的看不懂、讲得浅的学不会”——这种情况让初学者很难快速把R语言学明白、把程序编出来。
书中在细致地讲解R语言
张教授的初衷就是要解决这个困境。他认为,解决办法就是在 教学中真正融入编程思维:引导读者形成编程思想,了解编程语法 到底是怎么回事,应该用在哪、到底怎么用。
无论是理论还是编程,每个知识点,张教授都会搜集很多相关最新资料,保证先学个透彻明白,再把自己的理解用最通俗易懂语言表达出来,完全是掰开了、揉碎了、从头开始讲,生怕读者不理解,力求让0基础读者也能无障碍读懂。
实例足够多
只通过编程语法讲透彻R语言还不够,必须配以合适的实例来演示。
张教授建议读者一定要将编程语法讲解与配套实例结合起来阅读,比起实例代码调试通过,更重要的是 借助实例代码理解透彻该编程语法、所包含的编程思维。
本书后半部分是R语言在 应用统计、探索性数据分析、文档沟通方面的应用,所配案例力求能让读者上手使用。
书中的编程实例展示
在附录中,作者还将 透视表、网络爬虫、高性能计算、机器学习等典型应用囊括其中,为读者提供了更丰富的 R 实用编程案例。
为了保证学习质量,他不仅调试了全部R 程序代码,还把示例数据、R 程序、PPT讲稿、教学大纲、彩图等系列配套资源毫无保留地全部献上,读者只要登录异步社区官网、GitHub、码云社区,就可以免费get以上干货!感兴趣的读者还可以加入作者QQ群,让读者直接答疑。
也就是说,购买本书不仅能够得到一本 接地气的R教程,还等于拿到了一本 R语言语法大全的工具书,简直一举多得!
张教授对此十分自信,他表示:读者如果用这本书入门R语言或者更新知识,就会自动跳过写低级啰嗦代码的阶段,直接进入写让别人羡慕的 “高手级”代码的行列。
从根本上打造编程思维
想快速成为高手,就绝不能忘记 “站在巨人的肩上”这个捷径。这本书就是所有R语言学习者的最短桥梁,因为全书都透露着作者对编程的态度,如果你能参透这一点,必将在编程路上如虎添翼。
网络时代,几乎任何知识都可以从网络上查到。但对于编程者而言,唯一查不到的就是 编程思维。
而本书最大的特点之一就是: 无论是讲编程思想还是讲编程语法知识点,都把编程思维融入进去。
本书不仅涵盖了R语言的基本语法,包括向量化编程、泛函式编程思维,更重要的是让读者训练数据编程编程思维。R 语言更多的是与数据打交道,本书结合tidyverse全面讲解用“管道流、整洁流”操作数据的基本语法,包括数据读写、数据连接、数据重塑,以及各种数据操作。
总结下来主要 是以下三点:
● 将向量化编程思维和函数式编程思维,纳入数据框或更高级的数据结构中比如,向量化编程能同时操作一个向量的数据,我们将其转变成在数据框中操作一列的数据或者同时操作数据框的多列,甚至分别操作数据框每个分组的多列;将函数式编程转变成为想实现的操作自定义函数(或使用现成函数),再依次应用到数据框的多个列上,以修改列或进行汇总。
● 将复杂数据操作分解为若干基本数据操作
复杂数据操作都可以分解为若干简单的基本数据操作:数据连接、数据重塑(长宽变换/拆分合并列)、排序行、选择列、修改列、分组汇总等。一旦完成问题的梳理和分解,又熟悉每个基本的数据操作,用“管道流”依次对数据做操作即可。
● 接受数据分解的操作思维
比如,想对数据框进行分组,分别对每组数据做操作,整体来看这是不容易想透的复杂事情,实际上只需通过group_by 分组,然后把你要对一组数据做的操作进行实现;再比如,用across 同时操作多列,实际上只需把对一列数据要做的操作进行实现。这就是数据分解的操作思维,这些函数会帮你“分解+分别操作+合并结果”,你只需要关心分别操作的部分,它就变成一件简单的事情。
张教授特意强调,读者最好 按顺序阅读,这样才能彻底地更新 R 知识。在编程时也要 避免R基础库与Tidyverse 混用,因为二者在 写 R 代码上不是一个思维,强行搭在一起处处透着别扭,事倍功半。
这些人,必读本书!
R语言自诞生至今已经40余年。虽然源自国外,但中国学者也钻研出了一套更适应本土的学习方法,把最新、最全的R语言知识融入其中。
在张教授看来,下面这些人最有必要学习本书,书中内容也特别贴合他们所需:
▮0基础:没有 R 语言基础但想要系统地学习 R 语言编程,特别是想要学习新兴 R 技术的人。
▮技术升级:具备一定的 R 语言基础,想升级 R 语言编程技术的人。
▮培养思维:想要理解编程思想,锻炼向量化编程思维、函数式编程思维,以及想要真正掌握数据思维的人。
▮特定从业者:想要以 R 语言为工具,从事统计分析、数据挖掘、机器学习工作的人,特别是想学习使用机器学习包(tidymodels 和 mlr3verse)的人。
▮高校师生:高校里对 R 语言及相关课程有需求的师生及科研人员,特别是将来想要在时间序列、金融、空间数据分析、文本挖掘等领域使用 fpp3、modeltime、tidyquant、sf、quanteda 等包的人。
如果你恰好是以上这几类读者,小异强烈建议你入手本书。无论你是上手一门新语言,还是温故知新、精准进阶,就从现在开始学习吧!你和R编程高手之间只差这本书!
▲扫码即可购买书籍
文案:老王sai 编辑:fine. 审校:桐希、罗玉淇、胡俊英
参考来源:
1.张教授高校主页介绍
2. 《R语言编程—基于tidyverse》
3.张教授百度百科
4. 张教授知乎主页
—END—