前几天(上周日),我在分答上回答了一个问题,问题是:
Python,R,SPSS,SQL这类软件哪个最适合初学者入门以及进阶学习的顺序(以就业为导向)
语音中我从“职能方向”和“行业方向”聊了一下自己的看法,推荐的三个软件是SAS、R和Python。感兴趣的可以去我的分答“偷听”。
(二维码可以翻看之前推送的消息,或者在后台回复【fenda】获取,也可以在分答中搜索“数说君”,那个最帅的就是我)。
今天再推荐一篇文章作为补充资料,这篇文章讨论的就是SAS、R和Python这三个工具,从几个方面进行了比较,每个方面都给予了打分。
原文载于analyticsvidhya.com,作者Kunal Jain(原文见左下角“阅读原文”),数说工作室原创翻译,转载请注明微信号和微信ID
SAS vs. R (vs. Python) – which tool should I learn
SAS和R的比较已经是分析界最大的争论了,Python也值得一辩。本文再对这三个工具进行比较和讨论,希望大家可以从中获得收益。
难道这样的比较还不够多吗?
很多了!但是我仍然觉得有必要再讨论,因为:
- 咱们这行日新月异,变化很快;
- 此前的比较一直都不太重视Python,我认为现在咱们需要认真的考虑一下它;
- 本文是从全球的角度来比较这三个工具的应用情况。
背景
关于这三者的简单介绍:
(1)SAS:在商业分析领域,它是无可争辩的霸主。SAS提供了丰富的统计功能,友好的GUI界面可以让分析师快速上手,技术支持也做的相当到位。但,太贵了,并且对于一些最新的统计分析方法,SAS更新比较慢。
(2)R:R可以看做SAS的一个“开源版本”,在学术研究上的应用一直很广泛。由于它是开源的,新的模型和算法也更新很快,并且网上有很多说明文档,是个蛮划算的选择。
(3)Python:最早是一个开源脚本语言,近几年使用率大增。如今一些库(如numpy、scipy和matplotlib)和函数的引入,也使得它能支持几乎所有统计分析和统计建模工作。另外也由于Pandas这个库,使得Python在结构化数据的处理上非常给力。
比较
我将从如下几个方面来比较这三个工具:
1. 成本 2. 易学性 3. 数据处理能力 4. 图形处理能力 5. 更新速度 6. 工作前景 7. 客服支持和社区资源
对于每一个方面,作者都给出了一个评分(1分最低、5分最高)。
1. 成本
SAS是商业软件,对于大部分分析师个人来说,是根本买不起的!但是SAS在机构或公司中拥有最高的市场份额。而R和Python是免费的,并且可以任意下载,所以我的评分是:
- SAS - 2
- R - 5
- Python - 5
2. 易学性
首先,SAS非常容易上手,比如它的PROC SQL命令,对于任何一个学过SQL的人来说都可以立即上手。并且SAS有一个很好的GUI界面,网上有很多学习资源。SAS公司也提供了资格认证考试,当然,这又增加了学习者的成本。
R的使用要求懂一点编程,但它是一个低阶的编程语言,也因此一个简单的程序需要编写更长的代码。
在编程界,Python以简易性闻名,在数据分析界也是如此。虽然目前为止还没有一个很好的GUI界面,但我希望Python的notebook可以变得越来越主流,因为它非常方面编辑、记录与分享。
- SAS - 4.5
- R - 2.5
- Python - 3.5
3. 数据处理能力
数据处理能力曾经一直是SAS的优势。R的计算都在RAM内存中进行,于是它的计算过程受限于32位机器的RAM内存大小。当然,这一切都将不再是问题(数说君注:由于机器的性能提升?),这三种软件都有非常好的数据处理能力并且可以并行计算。
因此在我看来数据处理能力已经不能区分这三个工具(当然可能有一些我并不知道的创新),因此我给它们打分一样:
- SAS - 4
- R - 4
- Python - 4
4. 图形处理能力
SAS在“功能性”图形处理上表现不错,然而仅仅是对“功能性”而言。如果你想对图进行一些定制化的修改,则需要去了解纷繁难懂的SAS图形包。
与其他2款软件相比,R在图形处理上的表现最好,有非常多的包可以帮你实现。
Python的表现居中,你不仅可以使用本地库(matplotlib),还可以调用R使用一些衍生库。
- SAS - 3
- R - 4.5
- Python - 4
5. 更新速度
这三个工具都提供了基本的、以及最常用的分析函数,你可以应付大部分模型的构建。但假如,你正好需要使用最新最前沿的技术或算法怎么办?
R和Python由于其开源性,算法可以很快得到更新,R因为一直广泛使用于学术界,因此更新最快,SAS则要再下一个版本中得到更新。
但从另一方面来说,SAS的更新是自有的研发团队完成的,并且得到了很好的测试。而R和Python的更新是“公开贡献”的,出错的可能性要比较大。
- SAS - 4
- R - 4.5
- Python - 4
6. 工作前景
全球而言,SAS仍然是公司和机构中使用最多的工具,尤其是大型公司。而R/ Python更多是初创公司的选择,或者是一些想要节约成本的公司。最近几年,R和Python在工作中的使用率增长很快,下面是网络上公开的,使用R和Python的工作数量趋势图:
在印度(数说君:作者是印度人),我估计SAS占据约70%的市场份额,R大概15%,而Python不到5%,但增长趋势与全球差不多。
- SAS - 4.5
- R - 3.5
- Python - 2.5
7. 客服支持和社区资源
R有最大的在线社区,但没有客服支持,因此出现麻烦只能自己想办法解决,当然也会得到别人的很多帮助,Python也类似。
SAS有专门的客服支持系统,也有在线社区,所以如果遇到安装或者其他问题,你可以找他们解决。
- SAS - 4
- R - 3.5
- Python - 3
(数说君:当然,这个评分在中国约等于没用,原因你懂的:-D)
8. 其他因素
还有几点值得注意:
- Python在网站开发中应用广泛,所以如果你从事的是互联网相关工作,用Python会比较方便。
- SAS在端到端的部署上(可视化分析、数据仓库等),曾经有巨大的优势,但由于近年一些平台如SAP HANA和Tableau上对R的集成和支持,使得SAS的这一优势下降。尽管和SAS的无缝集成相比差距还很远,但道路已经开启。
结论
行业日新月异,现在说谁输谁赢还太早,根据你自己的情况(职业阶段、财务情况等),选择合适自己的。这里有几个小建议:
- 如果你是数据分析行业里的新人,我会建议你首先使用SAS,它非常好学,并且市场占有率最高。
- 如果你在数据分析行业已经摸爬滚打了几年,那你应该学习一个新的工具来扩展你的专业技能。
- 对于此行业里的专业人士,至少应该掌握2种工具,以应对未来的机会与挑战。
- 如果你在一家创业公司,或者你是个自由职业者——我想你还是老老实实用R或者Python吧!(数说君:这条不供参考,原因你也懂得)
最后的得分总结如下:
.END.