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 SGPLOT,SGPANEL和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/Studio(IML 是 SAS 的一个加载项)成果,可能通过利用 SAS X Statement 执行外部命 令,使 R 代码在 SAS 中转化成 SAS 呼吁来运行。对付 R 的用户们,通过转化 R 到 SAS 的 用户界面,可以同时利用 2 种软件。通过利用两种软件可以使处理惩罚及阐明数据变得事半功倍,并且使所有的用户都满足。