由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。

R 是一个开源统计软件,在分析领域普及的非常快。 在过去几年中,无论业务规模如何,很多公司都采用了 R 作为分析引擎(analytical engines)。 由于 R 是一个开源软件,考虑到分析行业的前景,许多领先的产品公司已经设计了他们自己的产品以便与 R 轻松地集成(easily integrate with R)。例如,我们可以将数据从 Tableau 传递到 R,在 R 中运行一些分析 将结果发送回 Tableau 以进行可视化。

不同的 R 产品

微软也以不同的方式进入了这一局面。 Revolution Analytics 是一家总部位于加利福尼亚州的公司,成立于 2007 年,开发了名为 Revolution R Enterprise 的企业版 R(an enterprise version of R)。这个在 2014 年推出的产品引入了一些可通过并行处理管理大数据的专有组件(proprietary components)和库(libraries)。 2015 年 1 月,微软收购了 Revolution Analytics 并重新命名了几款 Revolution Analytics 产品。 微软制造了一些免费的产品,其中一些是许可产品。 这些产品集包括 Microsoft R Open,Microsoft R Client 和 Microsoft R Server。

因此,市场上有 4 种不同的 R 产品(包括开源 R 或 CRAN R),其中 3 种是免费的,另外一种(Microsoft R Server)是获得许可的。有些人可能会对这些产品之间的差异感到困惑,以至于不知道哪一个才是最合适使用的 R 产品。

微软的产品相对较新,除了微软官方网站,网上没有太多的这些产品的相关文档。 虽然微软官网的这些产品都描述得很好,但我觉得有必要总结一下这四种产品的比较视图。

不同 R 产品的比较

在开始任何比较之前,请提及所有 R 用户都知道的开源 R(Open source R)的主要缺点(我们将在此称为 CRAN R)。 事实上 R 在内存上运行。 因此,R 代码分析数据所需的时间取决于您的计算机硬件。 如果数据超出内存限制,代码将崩溃(crash)。 因此,同一数据集的逻辑回归(a logistic regression),在一台机器需要 15 秒的运行时间在另一台高端计算机上可能需要 10 秒。 它也可能无法在低配置计算机中运行。

Microsoft R 产品试图在其产品的不同版本中解决 CRAN R 的这种限制。 现在让我们首先逐一了解 Microsoft R 产品的不同附加功能。

Microsoft R Open

该产品以前称为 Revolution R Open。Microsoft R Open(我们在此称之为 MRO)是 CRAN R 的一个小改进,主要有两个方面。 首先,MRO 使用多线程英特尔数学核函数库(multithreaded Intel Math Kernel Library,MKL)进行矩阵处理,如逆计算,矩阵乘法,矩阵分解等。但是要使用它,我们需要安装 MKL 库。 没有这个库,CRAN R 和 MRO 在执行效率方面是相同的。 其次,MRO 通过默认的 CRAN 存储库(CRAN repository)提供一致的静态 R 包。 我们可以通过 checkpoint 包使用特定版本的 R 包 一次又一次地重现代码。 除了上面这两方面,MRO 与 CRAN R 是相同的。

Microsoft R Client

Microsoft R Client(我们在后面称之为 MRC)是第一个支持并行计算的产品版本。 因此,可以通过它有效处理更大的数据集,但仅限于某些统计函数。 Microsoft(实际上由 Revolution Analytics 开发)开发了一些专有算法,用于一些可以处理并行化的统计计算。 例如,平均值或方差的计算可以很容易地并行化,但关联规则挖掘(association rule mining)可能不容易并行化。 目前,MRC 中有近 80 种不同的专有功能,可以实现数据的并行化。

MRO 是 Windows 下的免费软件,我们可以使用上述专有功能。 这些函数名称以后缀 “rx” 开头。 例如,glm()函数是用于拟合广义线性模型的 CRAN R 函数,但rxGlm()可以执行相同的操作并使用并行化。 但是,在 MRO 中,并行化最多只能有两个线程。

Microsoft R Server

Microsoft R Server(我们现在称之为 MRS)使用相同的专有函数进行并行化,但它可以在多个线程(两个以上)中进行处理。 它还可以处理多个数据节点(i.e. computers)中的数据。 MRS 有各种平台,如 R Server for Linux,R Server for Windows,R Server for Hadoop,R Server for Teradata DB,SQL Server R Services 等,这些平台可以在各种操作系统和数据库中实现 R 的无缝执行。

作为许可产品,MRS 具有与之配套的支持服务,我们也可以将 R 代码作为独立的 Web 服务运行。 使用 DeployR 软件包可以为为具有集群网络节点和计算节点的多服务器拓扑(multi-server topologies)操作 MRS 引擎。

下面我试图总结以上内容,并尝试针对不同场景看到最好的 R 产品。 希望这有助于人们做出决定。

英文原文:https://www.linkedin.com/pulse/microsoft-r-open-source-which-suits-you-best-tathagata-mukhopadhyay

作者:Tathagata Mukhopadhyay  |  翻译:Steven Shen

·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Microsoft R 和 Open Source R,哪一个才最适合你?的更多相关文章

  1. R(二): http与R脚本通讯环境安装

    结合实际的工作环境,在开始R研究的时候,首先着手收集的就是能以Web方式发布R运行结果的基础框架,无耐的是,R一直以来常使用于个人电脑的客户端程序上,大家习惯性的下载R安装包,在自己的电脑上安装 -- ...

  2. THE R QGRAPH PACKAGE: USING R TO VISUALIZE COMPLEX RELATIONSHIPS AMONG VARIABLES IN A LARGE DATASET, PART ONE

    The R qgraph Package: Using R to Visualize Complex Relationships Among Variables in a Large Dataset, ...

  3. 【R语言系列】R语言初识及安装

    一.R是什么 R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两个人共同发明. 其词法和语法分别源自Schema和S语言. R定义:一个能够自由幼小的用于统计计算和绘 ...

  4. python中换行,'\r','\n'及'、'\r\n'

    '\r'的本意是回到行首,'\n'的本意是换行. 所以回车相当于做的是'\r\n'或者'\n\r'.'\r'就是换行并回行首, '\n'就是换行并回行首,用'\r\n'表示换行并回行首. window ...

  5. 【R笔记】给R加个编译器——notepad++

    R的日记-给R加个编译器 转载▼ R是一款强大免费且开源的统计分析软件,这是R的长处,可也是其“缺陷”的根源:不似商业软件那样user-friendly.记得初学R时,给我留下最深印象的不是其功能的强 ...

  6. 【R语言入门】R语言中的变量与基本数据类型

    说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...

  7. java.io.IOException: Could not delete path 'D:\mycode\reactnative\SecondTest\android\app\build\generated\source\r \release\android\support\v7

    问题解决 直观上看是没有删除某个文件,产生的IOException异常,实际上是因为上次编译导致的缓存没有清空导致的. 进入到android目录下运行下面代码清除上次打包时的缓存: ./gradlew ...

  8. 【转载】 C++中回车换行(\n\r)和换行(\r)的区别

    原文:http://blog.csdn.net/xiaofei2010/article/details/8458605 windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回 ...

  9. R统计建模与R软件

    教材目录 第一章 概率统计的基本知识 第二章 R软件的使用 第三章 数据描述性分析 第四章 参数估计 第五章 假设检验 第六章 回归分析 第七章 方差分析 第八章 应用多元分析(I) 第九章 应用多元 ...

  10. 【R与数据库】R + 数据库 = 非常完美

    前言 经常用R处理数据的分析师都会对dplyr包情有独钟,它强大的数据整理功能让原始数据从杂乱无章到有序清晰,便于后期进一步的深入分析,特别是配合上数据库的使用,更是让分析师如虎添翼,轻松搞定Exce ...

随机推荐

  1. vue环境安装与配置

    https://www.jb51.net/article/251371.htmhttps://www.yht7.com/news/193355 一.下载和安装Vue: https://nodejs.o ...

  2. Host key verification failed的问题解决 (亲测有效)

                一.描述 scp拷贝远程内容时失败,出现以下问题: 翻译: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  3. 方差分析1—单因素方差分析(R语言)

    方差分析是由英国著名统计学家:R.A.Fisher推导,也叫F检验,用于多个样本间均数的比较(分析类别变量.有序变量).当包含的因子是解释变量时,关注的重点通常会从预测转向组别差异的分析.方差分析是一 ...

  4. Chrome浏览器插件:CrxMouse(鼠标手势控制浏览器)

    CrxMouse是一款谷歌浏览器插件,它可以通过手势来控制您的浏览器,在您的日常网络浏览中提高效率和速度. 插件介绍 CrxMouse是一个非常流行的谷歌浏览器插件,它允许您通过鼠标手势来控制您的浏览 ...

  5. 浅谈对属性描述符__get__、__set__、__delete__的理解

    1.属性描述符的基础介绍 1.1 何为属性描述符? 属性描述符是一种Python语言中的特殊对象,用于定义和控制类属性的行为.属性描述符可以通过定义__get__.__set__.__delete__ ...

  6. MySQL(二)字符集、比较规则与规范

    1 字符集的相关操作 MySQL8.0之前的版本,默认字符集为latin1,8.0及之后默认为utfmb3.utfmb4,如果以前的版本忘记修改默认的密码,就会出现乱码的问题. 1.1 修改步骤 修改 ...

  7. LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,欢迎来到小彭的 LeetCode 周赛解题报告. 昨晚是 LeetCode 双周赛第 102 场,你 ...

  8. 界面重建——Marching cubes算法

    一.引子 对于一个标量场数据,我们可以描绘轮廓(Contouring),包括2D和3D.2D的情况称为轮廓线(contour lines),3D的情况称为表面(surface).他们都是等值线或等值面 ...

  9. js-函数记忆

    函数记忆: 指将上次的(计算结果)缓存起来,当下次调用时,如果遇到相同的(参数),就直接返回(缓存中的数据). 实现原理:将参数和对应的结果保存在对象中,再次调用时,判断对象 key 是否存在,存在返 ...

  10. 百度首页静态展示页面HTML+CSS

    一直觉得百度首页很复杂的,有那么多的东西,跟这个博主学习了之后,仿写了一下,样式好像很简单 只设置的一些组件的高度而已,不得不说,CSS真是个好东西呀 话不多说,直接上代码 <!DOCTYPE ...