微软提供了一个更快,更有效的R,但它适合你吗?


2015年初,微软宣布成功收购Revolution Analytics,这使得R成为企业就绪的统计和数据科学解决方案。最初,微软表示,他们将利用这次收购将R语言的强大功能无缝地集成到微软SQL server和Azure产品线中。整个R社区都对RolutionAnalytics的Rolution R Open的命运感到担忧。

幸运的是,2016年1月,当微软宣布除了他们的企业R产品之外,他们还将继续提供Microsoft R Open,即以前被称为革命R Open的增强R发行版时,人们的担忧得到了缓解。

对于新用户和有经验的R用户,Microsoft R Open为R语言提供了额外的功能。这些增强是什么,在什么情况下有用?

多线程功能

首先,Microsoft R Open包含一组库,使某些分析能够以多线程方式运行。他们声明,只要启用这些包,您的机器将自动利用所有可用的核心,并看到许多常见R操作的改进,以及使用矩阵操作的任何功能。根据内核的操作和数量,您可以看到从5倍到45倍的任何地方的速度提升。

当R最初被构想时,它是在考虑单一处理的情况下构建的,但是随着数据量的增长,计算能力已经达到了极限。打开Microsoft R后,您可以运行各种矩阵计算,并利用计算机的多个内核来查看性能增强。这些增强功能可以直接使用,但也可用于常见的分析,如回归分析。在过去,如果您想多线程运行一个分析,您必须编写自定义代码。现在,您可以编写相同的代码并看到性能上的好处。

版本控制

使用R的一个挫折是缺乏内置的版本控制功能。由于R是一个包变化很快的开源项目,所以可以留给您的是上周工作但今天不行的代码。对于研究或企业环境中的R用户来说,分析的可重复性是关键。您可能希望将脚本传递给同事,或者将脚本移动到服务器上运行,但由于所使用的库发生了更改,脚本的行为可能会从最初的运行中更改。

Microsoft通过两种方式帮助解决此问题:

  1. 修正了CRAN快照--随着Microsoft R的每个版本打开,他们会在特定的日期拍摄CRAN的快照。例如,微软R Open的当前版本是3.2.3,它的CRAN快照是在2016年1月1日拍摄的。这意味着使用3.2.3的Microsoft R Open的每个用户都可以访问相同的软件包。
  2. checkpoint包--这个包允许您在任何时间点对R配置进行自定义快照。而不是依赖于已经提供的固定快照,您有能力根据需要向前或向后移动时钟。

CRAN vs.Microsoft R Open

最大的问题归结为,什么时候应该使用Microsoft R Open而不是CRAN,这是最流行的R发行版?需要明确的是,如果您使用Microsoft R Open over CRAN,则不会丢失任何功能。当您使用Microsoft R Open时,您将保留CRAN发行版的全部功能,并且可以访问所有可用的库和开发环境,如RStudio或Jupyter。Microsoft声明,在任何使用CRAN的地方,都可以使用Microsoft R Open。

除了上述添加的功能外,Microsoft R Open的一个好处是,您可以保留开源项目的灵活性,同时还可以让大型公司保证产品的可靠性。这种信心对于那些依靠某些分析来做出商业决策的公司来说是很关键的,这些公司希望保证这些分析在今天,明天和几个月后都能发挥作用。

有了这些好处,为什么不使用Microsoft R Open over CRAN呢?首先,CRAN总是能访问到最新的包代码。在Microsoft R Open中,您必须等待新版本,以保证新的和更新的软件包将与您的发行版一起工作。对于普通R用户来说,额外的好处来自于无需建立CRAN社区的学习曲线。由于Microsoft R Open对大多数用户来说仍然是新的,您可能没有像使用CRAN那样的社区支持或知识。

如果您或您的公司正在寻求R的其他性能改进或R脚本的更好的可重复性,那么Microsoft R Open可能是一个很好的解决方案。就像CRAN一样,Microsoft R Open也是开源的available for download.