概述

在上周的博客里,我向大家解释了为什么应该精通R语言(尽管这些说辞最终可能没什么大用)。我那篇文章是写给那些认为掌握R语言是件劳神费力的人看的(因为最后大家可能都会放弃R语言)。但当我提到R最终确有可能被其他语言取代时,有些人就担心害怕到好像R马上就要被取代了似的。那我就说点让你放心的:R仍然是最受欢迎的数据科学语言。在过去的几年里,R已经成为蹿升势头最猛的编程语言。说句实在话,如果你现在想入门数据科学,我仍然推荐你学习R。所以我想打消你们的疑虑,R在数据科学领域不会被其他语言取代,即使那是Python。

所以,我就是想跟大家说一下为什么我如此看好R的发展前景,并且我认为R是当今最值得学习的数据科学语言。

R在最好的编程语言里持续走高

有一件事情我必须要你们马上明确的:R现在是最被看好的、拥有高排名的、发展最快的编程语言之一。但总的说来,R是数据语言。在数据科学里面,R是独孤求败的(仅有那么一两个可以比一下的竞争者)。为了证明我说的这些都是事实,让我们看看在一些实际调查和编程语言排行榜上面R的表现如何。

IEEE: R排名第五

作为世界上最大的技术专业联盟,IEEE在编程语言上早就制定有排行榜。IEEE在这套排名系统里使用了12个衡量指标,包括谷歌搜索量、谷歌趋势指数、在推特上的热度、在Github上的资源存量、黑客新闻报导次数以及其他一些指标。在2016年最终的“最佳编程语言”的榜单上,R攀升到第五名。

IEEE的排名方法很综合,所以这是一个相当有说服力的结果:R相较于其他语言具有更高的学习价值。

TIOBE:R排名持续走高

另一个排名系统TIOBE也设立了一套类似的编程语言排名指数。我们可以在TIOBE指数上看到R最近的持续上升势头。

TIBOE指数等于是构造了一个最受欢迎的编程语言指标。该指数每个月更新一次,打分是来自于一定数量全球范围内的资深编程工程师、大学课程和第三方软件供应商。还包括来自像谷歌、必应、雅虎、维基百科、亚马逊、YouTube以及百度等搜索引擎的打分数据。2016年12月的时候,R在全部编程语言里排行17,它在TIOBE上最好的排名是在2015年的5月份排名第12。

这也表明了当前R语言是学习数据科学绝佳的选择。或许说R是最好的选择会有争议。(老实说,Python在TIOBE上的表现要好于R,但很难区分人们使用Python来网络和软件开发还是数据科学,所以这并不是公平的比较。)

Redmonk: R排名12

另一个常用的排名系统是Redmonk编程语言排行榜,源于GitHub和Stack Overflow上的热门讨论。2016年11月份的时候,R在这份榜单上位于所有编程语言的第13位。更为重要的是,R在过去几年展现了持续上升的趋势:

“在所有最好的20种编程语言里,R展现出了最为持久的上升势头。从2012年排名第17以来,R每年都在稳定进步,但好像在13名之后就举步不前。但此时R已经超过了Perl语言攀升到第12名。Perl依旧有着广阔的市场,但在数据科学方面R无疑要比Perl更为专业。这跟R倡导者们毫无关系,无论是什么原因,R成为最受欢迎的编程语言之一确实是值得振奋的事情。”

——Redmonk编程语言排行榜(2016.06)

O'Reilly:R可能是最为流行的数据编程语言

最后一个是O'Reilly。O'Reilly曾在过去数年间都做了关于数据科学的调查,并用调查得到的数据来分析数据科学的发展趋势,其中就有包括关于最受数据科学家欢迎的数据分析工具的分析结论。

2016年的调查报告显示,R是最为常见的编程语言(我还把SQL也算在内了,尽管从某种意义上讲它不是编程语言)。有超过57%的受访者使用R语言(相比而言,Python的使用比例是54%)。(有必要提一下的是,70%的人都在用SQL。如果你想在R后面再学习一门工具的话,我推荐SQL。)O'Reilly也调查了人们常用的数据可视化工具。结果表明ggplot2是最受欢迎的可视化工具。我将在接下来的博客里解释我为什么这么喜爱ggplot2。

R是学习数据科学的极佳工具

除了流行以外,R是优秀的数据科学编程语言的另一个原因在于R是学习数据科学的极佳工具。

R是真正的“数据语言”

这么说的一部分原因在于语言的本质。R应统计和数据而生。R-Project上R形容为一种“用于统计计算的编程语言”。因为R自打被发明以来就带有统计和数据的DNA。从这个层面看,R在编程语言里面是独一无二的,它为数据而生。这使得你在学习数据科学时具有优势,因为任意一个统计检验或者统计技术你都可以在R基础配置或者R扩展包里找到。

参考书和其他资源都在使用R作为范例

与R是统计计算语言这个事实相关的是另一个事实是许多最好的参考书和学习资料都采用了R作为编程范例。这对于初学者而言尤为重要,因为你有很多东西要学。为了真正掌握数据科学,你需要学习数据科学下的多个子领域,包括概率论、统计学、数据可视化、数据处理以及机器学习等等。所有的这些技术领域都需要理论基础和实战技术,这需要你自己编写代码来实现。这意味着两点:

1. 你选择的编程语言必须对各个领域(可视化,数据处理,机器学习(统计学习)等)都有强大的掌控能力。

2. 你选择的编程语言在这些领域内都有着高质量的练习材料。

尽管现在市面上有很多关于数据的学习教材和课程,但最好的都是用R作为编程范例的。

用R学习概率论

举例来说,有两本极为出色的概率书都是用R作为编程范例的。第一本是概率论及其R应用。这本书亲切可读且条理清晰。第二本是概率论导论,这本教材被哈佛统计课程广泛采用。这只是两个例子。如果你足够资深的话,你会发现大多数概率理论书都会采用R作为范例。

 

用R学习频率学派统计学

同样的道理可以用在统计学参考书上。R的统计特性与生俱来,多数统计教材都把R作为学习工具。这里我们介绍一本优秀的频率学派统计教材的入门书籍:统计学导论与R应用。当然,你也可以在亚马逊上随便一搜就可以搜到各类关于统计学的入门书籍,你会发现它们是否会用编程语言作为教学工具,并且相较于其他语言而言,它们更喜欢使用R语言。

用R学习贝叶斯统计学

如果你想要一本学习贝叶斯统计的手册,R语言在其中的作用就更加明显了。如果你想学习贝叶斯统计和贝叶斯分析的话,几乎所有的参考书都用了R作为范例。当然也有例外,只有极少部分的教材是通过C或者Python来讲解贝叶斯理论的,但毫无疑问的是最好的贝叶斯参考书都采用了R作为分析工具。

如果你对贝叶斯统计感兴趣的话,推荐看下面三本书:

1. 贝叶斯统计导论

2. 统计学反思

3. 贝叶斯数据分析实战

这些书都用了R作为分析工具,如果你对贝叶斯方法情有独钟的话,相信这会是你的菜。

 

用R学习数据可视化

当你学习数据可视化的时候,可供选择的编程语言范围就会大很多,但我仍然R是学习可视化的最好工具。如果你正在学习数据可视化的话,我极力推荐Nathan Yau名为flowingdata.com的博客,上面经常会有关于用R做可视化分析的教程更新。(他的书数据点是极好的配套教材,尽管它只阐明一些原理而对编程语法避而不谈。)同样力荐的是Hadley Wickham 大神的一些书。第一,如果你对R语言数据可视化感兴趣,你需要入手这本ggplot2。这个关于R数据可视化的扩展包不仅会教你编程语法,也会让你重新认识数据可视化。

我还推荐R语言数据科学这本书。这本书对数据可视化有一个令人惊叹的导论,当然也会教你如何用R处理数据。这是一本必备的R参考书。

用R进行机器学习

最后,如果你还想对机器学习有个入门的话,很多参考书也都用了R作为范例。我承认尽管关于机器学习教材使用的编程语言各不相同,但我仍然坚信R是最好的工具。这里有两本用R作为讲解的优秀的机器学习入门书籍:

1. 统计学习导论

2. 预测建模实战

这两本书读起来亲切有加又不失严谨。在讲解理论基础的同时也会向你展现实战技巧。这是两本我最喜欢向那些志在学习机器学习的初学者推荐的,它们都使用R语言。

R是学习数据科学的最佳工具

我最终的结论是R是学习数据科学最好的工具,很多参考书都用R作为编程语言。所以当还你是一名数据科学菜鸟的话,我认为R无论是在质还是量上都是最好的学习工具。

关于Python的一点说明

除了R之外,你当然还有许多其他选择,但我这里只提一下Python。随着数据科学的快速发展,可能除了R以外Python是一个值得认真考虑的选择。(其他语言缺乏体系健全的扩展包系统并且不开源。)我不想对Python作过多解释,但需要声明是Python是一门出色的语言,我爱Python。尽管说了这些,但对于数据科学的初学者而言,我还是认为R是稍微更好的选择,原因我在前面都已阐述完毕。再者,很多参考书对于数据科学基本概念(概率论、统计学、贝叶斯、机器学习)的解释都是基于R的,这并不是说用Python进行数据科学实践不好,但基于R的参考教材平均质量水平更高。

再就是许多学生用Python做了软件开发。这就意味着他们用Python来学习了数据结构、循环、控制流、面向对象编程以及网络框架而不是学习统计、数据可视化、数据处理和概率论等。这些计算机技能确实是数据科学家的工具箱必备武器之一,但不是我这里谈到的数据科学核心主题。老实说,我推荐大多数软件开发的初学者在学习开发之前最好是能学习一下基础的数据科学内容,包括数据处理、可视化以及数据分析等等。

尽管大多数初学者应该把软件开发原理的学习放在后面,但多数Python的初学者一开始就跑偏了。造成这种情况的原因有很多,但Python确实在这些领域表现出色。大部分关于Python的参考书都不是真正的数据科学书,而是关于编程和开发的书。所以当准备开始学习数据科学的学生打开一本Python教材的时候,很容易就被带往软件/网络开发的方向,而且经年累月走不出来。尽管我对Python爱之深沉,但Python对于初学者而言确实不太友好。所以最好还是从R开始你的数据科学之旅,容易学习且不易跑偏。

 

再次强调:数据科学就学习R语言

如果你想从数据科学这里拿走什么好东西的话,R是最好的选择。从流行程度上而言,R排名很高并且在持续走高。另外,多数最好的数据科学教材和学习材料都用R作为工具。如果你现在想入门数据科学,我郑重地向你推荐下面这些:

1. 学习R语言。

2. 具体而言,学习ggplot2,dplyr,tidyr,lubridate以及其他数据处理和可视化扩展包。

3. 学习如何综合利用各类工具进行数据分析。

4. 一旦你在这些关键扩展包的学习上取得进展,就去扩充你的概率统计和机器学习能力。

英文原作来自Sharp Slight Labs博客

翻译:鲁伟

英文原文地址:http://sharpsightlabs.com/blog/r-recommend-data-science/

一个数据科学践行者的学习日记

长按二维码.关注数据科学家养成记

[译]为什么R语言是当今最值得学习的数据科学语言相关推荐

  1. 一个数据包的旅程_数据科学语言的个人旅程

    一个数据包的旅程 by Elena Nisioti 由Elena Nisioti 数据科学语言的个人旅程 (A personal journey through the languages of da ...

  2. C 语言还值得学习吗?C 语言会过时吗?C 语言解惑

    C 语言还值得学吗? 答案是肯定的. 第一,学习C有助于更好的理解C++,Java,C#,Perl以及其他基于C的特性的语言.第一开始就学习其他语言的程序员往往不能很好的掌握继承自C语言的基本特性. ...

  3. r语言和python爬虫谁厉害_R vs Python: 谁是最好的数据科学语言?

    作者:Lou Bajuk 翻译:黄小伟,资深数据从业者.目前就职杭州有赞数据分析团队,欢迎加入! 简历邮箱:huangxiaowei@youzan.com 从我们成立之初,RStudio就致力于几个关 ...

  4. R如何与Tableau集成分步指南 - 适用于数据科学和商业智能专业人员

    Tableau是当今数据科学和商业智能专业人员使用的最流行的数据可视化工具之一.它使您能够以交互式和多彩的方式创建具有洞察力和影响力的可视化效果. 在本文中,我们将看到一些超越拖放功能的高级图表.我们 ...

  5. python是用什么语言开发的-专为人工智能和数据科学而生的Go语言,或将取代Python...

    时间回到30年前,Python 首次亮相.花了20年时间,Python才获得开发者的认可.来到 2019 年,Python已经成为开发人员第二喜欢的语言. 在过去的5年时间里,Python 成为了机器 ...

  6. python是什么语言开发的-专为人工智能和数据科学而生的Go语言,或将取代Python...

    时间回到30年前,Python 首次亮相.花了20年时间,Python才获得开发者的认可.来到 2019 年,Python已经成为开发人员第二喜欢的语言. 在过去的5年时间里,Python 成为了机器 ...

  7. 论学习大数据什么语言比较合适,不容错过!

    最近来有位同学前来咨询,他留言说:很喜欢大数据,也看好大数据的前景,但是自己没有Java基础,不确信自己有没有能力学好大数据,自信心严重不足.其实,这种情况并不少见,很多同学都在大数据大门前徘徊,承受 ...

  8. python语言程序设计基础网课-沿河高校邦数据科学通识课【Python基础语法】答案...

    沿河高校邦数据科学通识课[Python基础语法]答案it8p 沿河高校邦数据科学通识课[Python基础语法]答案 关注公众号{帅搜}即可查询答案 支持:大学网课,智慧树,知到,超星,尔雅,学习通,选 ...

  9. docbook_DocBook简介,一种值得学习的灵活标记语言

    docbook 最初发明计算机是为了进行数学运算,并且它们确实做得很好. 但是不久之后,用户就可以将其未来派计算器重新用于精美的动态打字机中. 现在,人类可读的文本驱动了计算,因此为您编写的文本选择正 ...

最新文章

  1. 【大作业】城市地铁线路最短路规划及路径输出(满分)
  2. 德国颁发抄袭大奖,中国包揽前10名拿了大满贯!
  3. C++:运算符重载函数之成员运算符重载函数
  4. CentOS 7 的 Python2 升级成 Python 3.7
  5. 一、第一个注解的 SpringMVC 程序
  6. 秒后面的单位是什么_单位与国际单位制是如何由来的?
  7. 高级软件工程2017第2次作业—— 个人项目:四则运算题目生成程序(基于控制台)...
  8. 负载均衡获取客户端IP
  9. IIS故障:World Wide Web Publishing无法启动 提示1721错误
  10. Crowd HDU - 4456 曼哈顿距离转切比雪夫距离的坐标变换与二维坐标离散化
  11. Python中常见的模块
  12. ( 教程 ) 微信公众号做淘宝优惠券自动查券返利机器人怎么设置?
  13. Python Appium自动化测试框架 综合实践案例(中)
  14. ODOO11报价单确认订单创建入库单(_run_move)
  15. 晶体三极管的放大原理
  16. 移动硬盘在计算机中不显示数据能恢复,移动硬盘在电脑上不显示怎么办?分享常用电脑知识...
  17. IDEA设置类注释模板
  18. 开发常用镜像资源替换为国内开源镜像(yum,compose,maven,docker,android sdk,npm,国内开源镜像汇总)...
  19. 是否能够成为真正的编程高手,主要是在于是否有毅力坚持学习和练习。本实例要求输出名言“贵有恒,何必三更起五更睡:最无益,只怕一日曝十日寒。”主要是想让读者激励自己,坚持学习C语言
  20. 已解决sitk::ERROR: Unable to determine ImageIO reader for “D:zuj\fx05(IOSUDA-master datasetsretinal_dat

热门文章

  1. 论文翻译 Deep Steering: Learning End-to-End Driving Model from Spatial and Temporal Visual Cues
  2. 暑期实践阶段性总结 2022-8-5
  3. WinForm:模态窗口与非模态窗口、Close与Dispose
  4. 【博弈-暴搜orDP】中山纪念中学暑期游Day1——游戏
  5. 一个完整的crm系统都应该具备哪些功能?
  6. uniCloud云开发入门:了解云函数、云数据库、云存储的基本概念
  7. 数据可视化神器DATAV
  8. Eezie and Pie
  9. 部门主管的管理职能:计划、组织、领导、控制
  10. JavaScript进阶必会的手写功能(二)