SAS与R优缺点讨论:从工业界到学界

摘要

尽管在工业界还是被 SAS 所统治但是 R 在学术界却得到广泛的应用因为其免费、开源的属性使得用户们可以编写和分享他们自己的应用。然而许多正在获得数据分析相关学位的学生们由于缺乏 SAS 经验的情况而在找工作的路上困难重重与此同时他们要面对从学校熟悉的 R向 SAS 转型的痛苦。理想情况是你需要知道所有可能的编程语言工作的时候使用与工作情况最匹配的那个当然这个基本上是痴人说梦。我们的目的就是展示这两种差异巨大的语言各自优点并且共同发挥他们的优势我们同时还要指出那些不使用 SAS 好多年的、现在正在使用 R语言的人们的一些误解和偏见因为他们已经很少关注 SAS 的发展和进步了。

前言

我们选取 SAS 和 R 的原因是因为他们是目前在统计领域中最有统治地位的两个编程语言。 现在我们注意到一个不好的现象就是在学术界重度使用R的用户认为R在被SAS霸占的工业界有具有相当优势的然而熟练掌握这两个软件对于想在数据分析领域取得小有成就的年轻人来说很关键。教授误解加上对某个软件的偏好往往对学生有着不利的引导因此需要在这里指出教授们别偷懒了对某种语言的主观偏好将会影响学生的钱途。

SAS经常有一些更新有点慢非SAS程序员由于没有技术跟进往往并不知情。SAS绘图模块就是一个快速发展并成长的例子然而许多人并不注意到这些升级以至于他们仍然固执的使用 R画图。SAS另一个不广为人知的例子是SAS可以轻松自定义函数这正是 R 的强项。这个SAS过程步PROC有全面的语法检查、翔实的文档和技术支持然而一个新的使用者很可能不知道这些工具可用或者根本不知道它们的存在。另外SAS 还拥有卓越的培训课程网络及用户组分享资源不同相关主题的大量书籍。知道并合理的使用这些技术以及工具 有助于减少使用 SAS的畏惧之心。

相关问题讨论

本文就在我们学院碰到的一些共同误解的地方在此对比列出两种语言的优缺点。当然还有更多的争论在进行中但是本文汇中我们将选取最为普遍的来进行讨论。我们希望能够消除误解并且尽可能地为那些不能及时跟进R或SAS的分析人士提供新的信息。

1.统计方法的新进展

SAS

优点SAS 的软件及算法都是经过检验的SAS 有技术支持去快速解决用户的需求。 如果需要的话SAS 会尝试在已存在的步骤中嵌入新的方法例如增加一个选项或者新增一个语句statement因此用户不需要学习另外一个过程步。SAS也 会发布最新通讯来详细说明软件的更新。缺点更新升级较慢。

R

优点用户可以快速实施新方法或者寻找已经存在的软件包。很容易学习和理解新方法因为学生们可以看到代码中的函数。
缺点R 文档的更新都是通过用户进行的所以新的方法并没有被很好调试和检验。 开发者们散布于各地而并没有在一起来进行团队合作的开发。

在这个问题上SAS 和 R 的优缺点是互补的。对于 R有人认为它的代码是开放的可以看到 R 是如何工作的这对于拥有相关背景的人是比较容易理解的。然而对于 SAS它的过程步是预装的文件中对不同的语句Statement及选项 Option 存储了大量的数学公式。如果用户真的想看到底层程序这个也是很容易实现的。对两种语言的使用着者来说不管是学生还是其它用户只是运行代码的话对于两种语言是没有什么不同的。你运行SAS不需要知道它在干什么类似的是你运行R时也不需要知道它在后台调用的函数。你所做的就是按章操作而已。

2.画图

SAS

优点SAS画图模块正变得越来越灵活、精良和易于使用。在一些分析过程步PROCs 中ODS Graphics可以自动的生成一些图形而不需要额外的代码。这使得用户多了一个选择即可以使用默认的图表生成图表也可以自己来创造个性化的图表。
缺点图形背后的模板语言TL是庞大及不易使用的特别是对于新手来说。新的高级功能如交互式绘图功能 interactive graphs对于新手来说也是难以掌握的。

R

优点可以简单的生成漂亮的图表还可以使用循环语句来生成动画。
缺点在 R 中图表功能与统计分析无关绘图和分析是相互独立的。用户必须自己来决定什么样的图形是合适的使用效果的好坏取决于用户们的统计背景和喜好。尽管改变图形去达到特别的维度或角度并不是一个简单事儿。

SAS9.2 之前版本的图表功能不足是 R 更吸引人的一个主要原因之一。R的一个最好的特性之一就是其图表功能的高质量性和易用性。但是当前 SAS/GRAPH 搭配 ODS Graphics 及 SG 过程在软件中增加了制图的能力。联合使用 ODS graphics 和 PROCS 可以使用户简单地生成与分析相关的展示图表。 特定的绘图过程步如PROC SGPLOTSGPANEL和SGSCATTER等越来越多当然需要的一定代码来实现。另外SAS 中还有一些其他不错的绘图选择如 SGDESOGNER 和 SAS Enterprise Guide。

3.函数及可重复使用的代码

SAS

优点SAS有可在 DATA 和 PROC 步使用的大量函数和自定义函数。另外强大无所不能的、也可以被DATA步和PROC步使用的宏语言。宏变量可定义为局部或者全局类型。
缺点编写自定义函数和详细的宏代码需要深厚的编程知识来确保正确性。

R

优点在 R 中编写函数很简单用户也可以通过上传自己的函数到 R-CRAN 上与其 它用户分享。
缺点编写自定义函数需要深厚的编程知识来确保正确性。变量是严格的局部变量。

在这一点上两种软件拥有类似的利弊。SAS 的早期用户运行自己的定制函数主要取决于宏程序的编写这也是 R 用户认为其低效及笨重的原因。然而SAS 9 版本的 PROC FCMP允许用户编写个性化的函数SAS 9.2 版本又允许用户在 DATA 及 PROC 步中调用这些函数。 这对于简单的统计函数是很有用的对于更加复杂的统计函数也可以通过 IML 语言来实现。

SAS 及 R 两种语言都面临着怎样有效地、正确的使用函数这就需要用户在函数编写的过 程中拥有深厚的编程背景。从好的角度来说一个程序员需要知道他们编写的是什么危险的是其它人可以下载一个 SAS 宏或者 P 程序包来使用尽管他们不知道其内在工作原理 甚至不知道其正确性。所以有了对宏及函数适当的了解再来分享它们并应用于具体的需 求是很方便的。

4.免费软件

SAS

优点SAS 有OnDemand 版本的软件免费提供给学位颁发机构。

缺点真正的 SAS 和 JMP 并不是免费的。OnDemand 版本对使用何种操作系统有一 些限制而且据反映运行速度很慢。

R

优点R 是完全免费。
缺点开源软件对于大公司来讲都会有安全方面的担忧。

SAS公司为教育机构提供的免费替代品可以保证教授们在课堂上的使 用。对于 OnDemand 的安装过程和速度需要注意。总之SAS 和 JMP 不是免费的公司需要使用许 可来使用该软件。R 可以免费的安装但许多参与论战的博主们认为如果那些正在使用 SAS 的公司去使用 R将会花费远远超过 SAS 授权费用的资源和财力例如重写代码、构建新 的团队、招聘新的专业人员等等。而且对于那些分析结果需要经得起严格检验要求的公司 可能 SAS 更加适合。还没有现存分析框架的小公司可以来探讨是选择历史悠久、资源丰富的付费软件SAS还是要选择虽然免费、但是还需要其它先期投资如员工的知识背景 编写及调试代码的软件R。最终从时间和金钱的角度来衡量SAS 和 R 的花费可能 是基本接近的。

5.用户支持

SAS

优点SAS 有丰富的网上参考资料专业的技术支持专业的培训课程许多优秀 的出版书籍一个紧密的用户组及网络社区。SAS 的问题可以直接反映给技术支 持部门他们会与用户一起来解决。缺点真的没想到。

R

优点R 有很好的示例手册网上参考材料R 邮件列表和 R 聚会。
缺点用户们取决于其它用户对于软件的看法及建议。因为 R 的开发者散布于全球 各地所以全球的用户是缺乏联系的。程序包Package并不是由 R 软件的开发 核心团队来编写的所以导致了程序的不完善甚至有时候会对结果的正确性有所怀 疑。另外很难去直接寻找一个针对具体问题的人员或者团队。

SAS 所提供的卓越的支持是他们以客户为中心设计产品的亮点。SAS 支持的优点对初 学者是理想的帮助其大量的细节也使资深用户受益匪浅。R 较为混乱的参考资料和匮乏的 技术支持在需要寻找帮助时困难重重。这违背了 R 的开发设计者的初衷。

6.数据处理

SAS

优点SAS 可以处理任意类型和格式的数据。DATA 步的设计纯粹就是为了数据的管 理所以 SAS 擅长处理数据。利用丰富的选项SAS 可以将大数据处理的很好拼表以及 PROC SQL 也可以减少运行时间。
缺点在 DATA 步骤中 SAS 中的DATA步有非明示的循环算法因此使用者的编程思维需要改变以符合SAS的运行逻辑。

R

优点R 在最初就被认为是更加适合大数据的。它对于矩阵的操作和排序的设计是非 常高效的。R 也可以很好的进行各种基于分析的数据模拟。
缺点R 的设计更加关注统计计算以及画图功能所以数据的管理是比较耗时的而 且不如在 SAS 中那么明晰。其中一个主要的原因就是对于各种不同类型的数据在 R 中进行很好的数据处理是比较难以掌握的。

数据处理的重要性经常在统计编程中被忽视了但是它确实是非常关键的因为实际的数据非常糟糕不能直接应用于分析。纯粹地使用 R 的学生们对于得到的数据往往有不切实际的期望而学习 SAS 是一个有效的方法去解决怎样整理原始的数据。SAS可以对大而繁杂的数据集进行管理和分析而 R更着重于进行分析。

当处理复杂数据时R 的面向对象的数据结构会遇到很多问题并且R还缺乏一个内在的循环过程。在SAS中应用标准化工具经常会进行如下操作合并含有大量缺失数据的复杂数据集再生成及修改其中的变量。而在R中进行复杂的数据处理操作是没有标准化的而且经常会导致更加复杂的过程。

SAS与R软件运行时间的快慢对比取决于任务。如SAS可以通过设置 MEMLIB从而像R一样使用内存(而非硬盘)来提升运行速度。但在R中没有这样的硬件驱动只能使用内存来执行。

7.安装

SAS

优点SAS所有的分析功能及授权都被整体打包在一起安装。升级授权证书是非常容易。
缺点首次安装或升级到一个新的版本是很耗时且有点麻烦的。但是这比在课堂上向 学生们讲述如何使用这个软件简单1000倍。现在越来越多的学生们在课堂上使用Macs系统的笔记本但是SAS没有Mac版意味着这部分学生无法使用 SAS。

R

优点R 和其最常用的用户界面 RStudio 在 Window、Mac 和 Unix 环境下都很容易安 装和打开且安装速度都很快。
缺点运行必须知道满足需求的程序包然后搜索、安装、了解具体功能。截止原文发表时共有 4379 个可用程序包这一数量还在每天增加。在提供了更多选择的 同时也增加了搜寻的时间和难度。

SAS 的获得对用户来说比较困难首次安装也是比较麻烦的。但是一旦安装完成了 有关软件本身的问题就很少了对于特别的分析也不需要额外的程序包或者步骤了。R 中 相反安装非常简单但对于额外分析需要另外安装程序包浪费了安装软件所节省的时 间。

8.报表

SAS

优点SAS 通过很多有用的过程步来生成详细漂亮的报表。
缺点能提供更详尽报表的过程如 TABULATE、REPORT 等在能正确而有效的使用前将为有一个艰难的学习曲线等待你跨越。

R

优点报表方面R拥有诸多利器。Sweave包可以创造包含文字、表格和图形的 PDF 文件其中图形可以LaTeX 和 R 命令来装扮。另一个新的程序包 Knitr 可以快速生成格式限制较少的网页内容。
缺点R 没有一个模式化的方式来生成报表所以需要在编程上花一些功夫。报表的生成对于 R 来说是一个比较新的方向所以它不如 SAS 来的简单和快速。在 R 中Sweave 和 Knitr 是报表这方面的领先的程序包但是学习起来也比较困难。

重度报表使用用户应该了解这些以上不同尽管学习 SAS 的报表功能需要花费一些时间但是一旦掌握了就很有价值并有很高的灵活性。而从最基础学习 R 的报表功能也许不需要像 SAS 那样花那么多时间。

结论

我们可以看到解决 R 与 SAS 的辩论是三合一的。

第一就像在任何一个统计编程社区 一样我们知道这个PK是没有一个最终赢家。两种软件各有优缺点。他们有共存的必 要而学术上的教学中他们也有共存的必要。如果学生们能够明确他们的需求并合理的应 用那样会获得更好的效果。如果只给学生教授一种软件是有局限性的这样会使他们难以 发挥学习另外一种软件的潜力。

第二用户们需要保持他们的工具箱与时俱进。SAS 和 R 都有一些很不错的 学习网站去介绍最新 的技术上的进步。 SAS 技术支持网站http://support.sas.com 有许多最新的动态如 Focus Areas、E-newsletters、RSS 种子和博客。R 博客网站 http://www.r-bloggers.com 包含了许多用户贡献的新闻和练习。

第三最理想的是学习 两种软件并将其融合于分析中。这里有许多方法可以尝试例如用 SAS 的 IML 和 SAS 的 IML/StudioIML 是 SAS 的一个加载项功能或者通过使用 SAS X Statement 执行外部命 令使 R 代码在 SAS 中转化成 SAS 命令来运行。对于 R 的用户们通过转化 R 到 SAS 的 用户界面可以同时使用 2 种软件。通过使用两种软件可以使处理及分析数据变得事半功倍而且使所有的用户都满意。

原文发布时间为2015-11-28

时间: 2025-01-19 19:08:51

SAS与R优缺点讨论:从工业界到学界的相关文章

SAS vs. R (vs. Python) – which tool should I learn?

原文  :  http://www.analyticsvidhya.com/blog/2014/03/sas-vs-vs-python-tool-learn/ We love comparisons! From Samsung vs. Apple vs. HTC in smartphones; iOS vs. Android vs. Windows in mobile OS to comparing candidates for upcoming elections or selecting c

序列作为主键使用的原理、优缺点讨论

这几天和同事一直在讨论关于表设计中主键选择的问题,用sequence作为主键究竟有什么好处,又有什么缺点,尤其是有些事务场景上下文需要用到创建的序列值,如何用?其实我想说的是,可能只是一个很简单的概念,可能深入理解,还是有很多未知的知识,当然也就可能会有一些容易忽略但又可能很关键的坑,只有碰了才知道... 以下是总结摘要,如有疏漏,还请过路的各位大侠赐教.   1.首先说下seq.nextval主要有以下两种使用场景:(1). 如果一个事务中只是INSERT时需要序列,其他地方不会需要这个序列,

SAS数据挖掘浅谈

随着大数据的兴起,数据挖掘这一行也越来越火了.同时,各类大数据分析挖掘工具也越来越多,从最早的C.Java.excel.spss.SAS到现在Python.R.Hadoop,跨越了各行各业,从零售到互联网,从金融到医疗,都有了很大的发展.从我个人工作一年的经历来看,光数据挖掘工具,就用到了SAS.Python.R.Hadoop.从我个人看来,Python用于数据清洗确实比较方便,但是对于数据量稍微大一点,Python的运行效率还是不如SAS,R更适合跑算法模型,但是一旦数据到G级别的话,对于本机

学习数据分析的“里程碑”是什么?

数据分析是一项综合技术.它既包含hardcore的编程技术,也包含诸多分析逻辑的软知识. 对于数据科学家而言,Excel只是自己技能图表里很小的一部分.虽然数据科学家流派众多,成长路径也各异,很难用短短一篇文章概括成长过程中碰到的所有"里程碑".但是,依旧有一些东西是共通的.这篇文章就尝试归纳一些我心目中的数据科学"里程碑". 什么是里程碑? ①"里程碑"是一套知识体系中的重要环节,无论用哪个教程.如何展开学习,它总会是你必须面对的一关.有可能它

数据分析师的职位划分

不同公司对数据分析师的职位划分稍有不同.在一些中小型企业,在没有成立独立的数据中心前,数据分析的相关职位往往是在市场部.运营部的管辖之下,人数通常在2-4人不等.对于一些大型企业,有独立的数据分析部门,团队成员也在数十人到百余人不等.对于职位头衔,有的按行政级别划分,如专员.主管.经理.总监等:也有的按专业水平划分,如助理.高级.资深.专家等. 数据分析职位整体上分为两大类: 数据分析师: - 专业能力成长路径:助理数据分析师-数据分析师-资深数据分析师-高级数据分析师 - 行政职位晋升路径:数

技术 | 使用Python来学习数据科学的完整教程

我在SAS工作了5年多之后,决定走出舒适区.作为一名数据科学家,我在寻找其他好用的工具,幸运的是,没过多久,我发现了Python. 一直以来,我喜欢敲代码.事实证明,有了Python,敲代码变得更为容易. 我花了一周时间来学习Python的基础知识,从那时起,我不仅深入钻研Python,而且还帮助许多其他人学习这门语言.起初,Python是门通用语言,多年来,随着社区的大力支持,现在有了数据分析及预测建模库. 由于缺少Python数据科学资源,我决定创建本教程,旨在帮助大家快速入门.在本教程中,

作为数据科学家应该知道的11件事

背景 在我们举办的聚会期间,我们见到了很多朋友.从数据科学领域完全的菜鸟到专家,在同一个屋檐下,每个人都发出自己的疑惑.然而,当我们面对这群朋友--很大比例的这部分人(包括一些专家),一件事情显得尤为突出,他们没有自己的机器,也没有将自己的身份调整过来.他们中的很多人从未抽出时间开启他们作为数据科学家的旅程.结果他们只是得到了一个能够涉及多个产业资源的机会. 没有人告诉他们该关注哪些博客,该订阅哪些时事新闻,去哪里阅读行业最新的讯息.他们从不调整他们的机器,也没有必要的硬件或者软件.这导致了极低

Intel研究院院长吴甘沙演讲全文:大数据分析师的卓越之道(32PPT珍藏版)

亲爱的各位同仁,各位同学,早上好.大数据时代数据分析师应该做什么改变?我今天的标题是大数据分析师的卓越之道.这个演讲信息量比较大,我讲的不一定对,即使对的我也不一定真懂了,所以请大家以批判的方式去理解. 这是一个典型的数据分析的场景,下面是基础设施,数据采集.存储到处理,左边是数据处理,右边价值输出.连接数据和价值之间的是知识发现,用专业词汇讲,知识就是模型,知识发现就是建模和学习的过程.问题来了,大数据时代带来怎样的变化?首先数据变得非常大,数据是新的原材料,是资产.货币,所以大家对价值输出的

大数据实战:站在JMP分析平台上的FIT足迹识别技术

大数据范围越来越广,随着不同应用的爆发式增长,数据分析正在被更多行业企业所知晓并实践,比如互联网.金融.零售.医疗.以及制造业等.与此同时,对于统计分析系统应用的争论,也随着应用与实践的逐步深入而日趋激烈. 正如之前就"数据收集与分析"的话题与 LinkedIn商业分析部总监张溪梦讨论时,他特别提到的一点:"统计分析有两个知名系统,SAS和R.前者稳定,闭源,功能众多,大型企业用户很多.后者,开源,反应快,但并不稳定,专业领域优势明显,年轻人很喜欢用.各有空间和市场.&quo