12 一 14 SAS与R优缺点讨论:从工业界到学界
SAS与R的优缺点讨论:从工业界到学界翻译 by JosephYX 校对 by sxlion 原文链接 导读:尽管这个话题已经讨论过很多次,但是这个翻译是比较系统的总结了一下两个软件的优缺点,值得一看。PS: 此话题已老,推荐新人看,另见以前一篇SAS评论引发的思考 by sxlion 摘要尽管在工业界还是被 SAS 所统治,但是 R 在学术界却得到广泛的应用,因为其免费、开源的属性使得用户们可以编写和分享他们自己的应用。然而,许多正在获得数据分析相关学位的学生们由于缺乏 SAS 经验的情况而在找工作的路上困难重重,与此同时,他们要面对从学校熟悉的 R向 SAS 转型的痛苦。理想情况是,你需要知道所有可能的编程语言,工作的时候使用与工作情况最匹配的那个,当然这个基本上是痴人说梦。我们的目的就是展示这两种差异巨大的语言各自优点,并且共同发挥他们的优势,我们同时还要指出那些不使用 SAS 好多年的、现在正在使用 R语言的人们的一些误解和偏见,因为他们已经很少关注 SAS 的发展和进步了。 前言我们选取 SAS 和 R 的原因是因为他们是目前在统计领域中最有统治地位的两个编程语言。 现在我们注意到一个不好的现象,就是在学术界重度使用R的用户认为R在被SAS霸占的工业界有具有相当优势的,然而熟练掌握这两个软件对于想在数据分析领域取得小有成就的年轻人来说很关键。教授误解加上对某个软件的偏好往往对学生有着不利的引导,因此需要在这里指出:教授们,别偷懒了,对某种语言的主观偏好将会影响学生的钱途。 SAS经常有一些更新(有点慢,sxlion注),非SAS程序员由于没有技术跟进往往并不知情。SAS绘图模块就是一个快速发展并成长的例子,然而许多人并不注意到这些升级以至于他们仍然固执的使用 R画图。SAS另一个不广为人知的例子是SAS可以轻松自定义函数,这正是 R 的强项。这个SAS过程步(PROC)有全面的语法检查、翔实的文档和技术支持;然而一个新的使用者很可能不知道这些工具可用,或者根本不知道它们的存在。另外,SAS 还拥有卓越的培训课程,网络及用户组分享资源,不同相关主题的大量书籍。知道并合理的使用这些技术以及工具 有助于减少使用 SAS的畏惧之心。 相关问题讨论本文就在我们学院碰到的一些共同误解的地方,在此对比列出两种语言的优缺点。当然还有更多的争论在进行中,但是本文汇中我们将选取最为普遍的来进行讨论。我们希望能够消除误解,并且尽可能地为那些不能及时跟进R或SAS的分析人士提供新的信息。 统计方法的新进展SAS:
R:
在这个问题上,SAS 和 R 的优缺点是互补的。对于 R,有人认为它的代码是开放的,可以看到 R 是如何工作的,这对于拥有相关背景的人是比较容易理解的。然而对于 SAS,它的过程步是预装的,文件中对不同的语句(Statement)及选项( Option) 存储了大量的数学公式。如果用户真的想看到底层程序,这个也是很容易实现的。对两种语言的使用着者来说,不管是学生还是其它用户,只是运行代码的话对于两种语言是没有什么不同的。你运行SAS,不需要知道它在干什么,类似的是,你运行R时,也不需要知道它在后台调用的函数。你所做的就是按章操作而已。 画图SAS:
R:
SAS9.2 之前版本的图表功能不足是 R 更吸引人的一个主要原因之一。R的一个最好的特性之一就是其图表功能的高质量性和易用性。但是,当前 SAS/GRAPH 搭配 ODS Graphics 及 SG 过程在软件中增加了制图的能力。联合使用 ODS graphics 和 PROCS 可以使用户简单地生成与分析相关的展示图表。 特定的绘图过程步如PROC SGPLOT,SGPANEL和SGSCATTER等越来越多,当然需要的一定代码来实现。另外,SAS 中还有一些其他不错的绘图选择,如 SGDESOGNER 和 SAS Enterprise Guide。 函数及可重复使用的代码SAS:
R:
SAS 及 R 两种语言都面临着怎样有效地、正确的使用函数,这就需要用户在函数编写的过 程中拥有深厚的编程背景。从好的角度来说,一个程序员需要知道他们编写的是什么;危险的是,其它人可以下载一个 SAS 宏或者 P 程序包来使用,尽管他们不知道其内在工作原理, 甚至不知道其正确性。所以,有了对宏及函数适当的了解,再来分享它们并应用于具体的需 求是很方便的。 免费软件SAS:
R:
SAS公 司 为 教 育 机 构 提 供 的 免 费 替 代 品 可 以 保 证 教 授 们 在 课 堂 上 的 使 用 。 对 于 OnDemand 的安装过程和速度需要注意。总之,SAS 和 JMP 不是免费的,公司需要使用许 可来使用该软件。R 可以免费的安装,但许多参与论战的博主们认为如果那些正在使用 SAS 的公司去使用 R,将会花费远远超过 SAS 授权费用的资源和财力,例如重写代码、构建新 的团队、招聘新的专业人员等等。而且对于那些分析结果需要经得起严格检验要求的公司, 可能 SAS 更加适合。还没有现存分析框架的小公司可以来探讨是选择历史悠久、资源丰富的付费软件(SAS),还是要选择虽然免费、但是还需要其它先期投资(如员工的知识背景, 编写及调试代码)的软件(R)。最终,从时间和金钱的角度来衡量,SAS 和 R 的花费可能 是基本接近的。 用户支持SAS:
R:
SAS 所提供的卓越的支持是他们以客户为中心设计产品的亮点。SAS 支持的优点对初 学者是理想的帮助,其大量的细节也使资深用户受益匪浅。R 较为混乱的参考资料和匮乏的 技术支持在需要寻找帮助时困难重重。这违背了 R 的开发设计者的初衷。 数据处理SAS:
R:
数据处理的重要性经常在统计编程中被忽视了,但是它确实是非常关键的,因为实际的数据非常糟糕,不能直接应用于分析。纯粹地使用 R 的学生们对于得到的数据往往有不切实际的期望,而学习 SAS 是一个有效的方法去解决怎样整理原始的数据。SAS可以对大而繁杂的数据集进行管理和分析,而 R更着重于进行分析。 当处理复杂数据时,R 的面向对象的数据结构会遇到很多问题,并且R还缺乏一个内在的循环过程。在SAS中,应用标准化工具经常会进行如下操作:合并含有大量缺失数据的复杂数据集,再生成及修改其中的变量。而在R中,进行复杂的数据处理操作是没有标准化的,而且经常会导致更加复杂的过程。 SAS与R软件运行时间的快慢对比取决于任务。如SAS可以通过设置 MEMLIB,从而像R一样使用内存(而非硬盘)来提升运行速度。但在R中,没有这样的硬件驱动,只能使用内存来执行。 安装SAS:
R:
SAS 的获得对用户来说比较困难,首次安装也是比较麻烦的。但是一旦安装完成了, 有关软件本身的问题就很少了,对于特别的分析,也不需要额外的程序包或者步骤了。R 中 相反,安装非常简单,但对于额外分析,需要另外安装程序包,浪费了安装软件所节省的时 间。 报表SAS:
R:
重度报表使用用户应该了解这些以上不同,尽管学习 SAS 的报表功能需要花费一些时间,但是一旦掌握了就很有价值并有很高的灵活性。而从最基础学习 R 的报表功能也许不需要像 SAS 那样花那么多时间。 结论我们可以看到解决 R 与 SAS 的辩论是三合一的。第一,就像在任何一个统计编程社区 一样,我们知道这个PK是没有一个最终赢家。两种软件各有优缺点。他们有共存的必 要,而学术上的教学中,他们也有共存的必要。如果学生们能够明确他们的需求并合理的应 用,那样会获得更好的效果。如果只给学生教授一种软件是有局限性的,这样会使他们难以 发挥学习另外一种软件的潜力。第二,用户们需要保持他们的工具箱与时俱进。SAS 和 R 都有一些很不错的 学习网站去介绍最新 的技术上的进步。 SAS 技 术 支 持 网 站 http://support. 有许多最新的动态,如 Focus Areas、E-newsletters、RSS 种子和博客。R 博客网站 http://www. 包含了许多用户贡献的新闻和练习。第三,最理想的是学习 两种软件并将其融合于分析中。这里有许多方法可以尝试,例如用 SAS 的 IML 和 SAS 的 IML/Studio(IML 是 SAS 的一个加载项)功能,或者通过使用 SAS X Statement 执行外部命 令,使 R 代码在 SAS 中转化成 SAS 命令来运行。对于 R 的用户们,通过转化 R 到 SAS 的 用户界面,可以同时使用 2 种软件。通过使用两种软件可以使处理及分析数据变得事半功倍, 而且使所有的用户都满意。
|
|