上一个项目中需要给客户推荐数据分析工具,目标地位在SPSS、SAS、R和Python这四个工具上。在百度上过了一圈,看不到特别好的帖子。而自己只对SPSS和手写code比较熟,SAS没有接触过,对R和Python的使用和理解和都比较肤浅,所以最后写的对比自己都觉得不是很满意。
今天在KDNuggets上看到两篇对比R和Python的文章,老美写的挺好,这里总结一下,分享出来。原文链接在文章的最后。
第一部分 R和Python的今世前生
R是1995年在S语言的基础上由Ross Ihaka和Rebert Gentleman创立的。主要初衷是为了提供一个用户友善的数据分析、统计和绘图的工具。原先流行于学院内,现在主流的公司都已经在使用。
Python是1991年由Guido Van Rossem创立的。初衷是为了提供一个易读的编程语言。后续才有一些统计和数据分析功能加入。
从这两个工具的出身就可以看出,R更和分析人员的胃口,而Python对工程师世界的人更有亲近感。R的分析包极度的丰富,还有大量的论坛、答疑和文档的支持。二Python则更容易和整个软件工程开发相适应,比如你想调用数据库,或者直接和前端页面交互,Python就有天生的优势。之前Python的分析包较少,不过这种情况现在有了很大个改变。
因此,取决于学习者的出身,R的学习曲线较Python更陡峭,对于经验丰富的程序员,两个工具的学习曲线就看你对那个方面的要求功能更高了,是牛逼的数据分析,还是牛逼的前后端系统整合。
第二部分 两者的数据比较
在通用的编程语言排名中,Python一直排名靠前,基本都是4-5位,而R都在十几名那里溜达。不过Python是一个通用编程语言,而R相对专业很多,所以这个排名无意义。在第二个链接的文章里面,KDNuggets自己搞的调查中,不管是使用者,社区大小,讨论数量等方面,R在2014年每季度都是第一,而且R的工作薪酬平均也比Python的要高出近2000美金。不过Python开发人员的需求增长在2014年已经超过了R的开发人员。
第三部分 优劣大PK
R的优势:
- 可视化工具很丰富,支持的包也不少;不要告诉我你还在用表格给领导看结果!
- 有完善的生态系统,CRAN社区等有丰富的学习资源;
- 天生的面向数据分析人员和科学家,对编程的技能要求低;
- R比较的慢,这是故意的!!!因为不是为了码农来设计的!!
R的缺点:
- 这个很难学,曲线太陡峭。你可以决定要不要挑战自己一把。
Python的优势:
- IPython Notebook让你的工作很简单,容易跟别人分析工作代码和数据;
- 通用编程语言,这是为码农准备的东东!
- 系统集成性好,可以更很多其他的软件交互,这也是为了码农准备的!
Python的缺点:
- 数据可视化部分比较孱弱,想自己搞一个漂亮的图,有些烦;
- 对于数据分析和统计的支持,相对R来讲,弱了不少。尽管在不断追赶,但是能否超越?!?
有了上面的分析,估计对于自己想用啥,大家都清楚了吧。没有绝对答案,取决于
- 你想解决什么问题?分析还是应用?
- 学哪个对你来说成本最低?
- 你混的地盘里,哪个更为主流接纳?
- 其他需要你使用的工具是什么?他们跟R和Python的关系?
下一篇再找找这两个开源的工具与收费工具的PK文章吧。