Microsoft R 和 Open Source R,哪一个才最适合你?
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接。
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,哪一个才最适合你?的更多相关文章
- R(二): http与R脚本通讯环境安装
结合实际的工作环境,在开始R研究的时候,首先着手收集的就是能以Web方式发布R运行结果的基础框架,无耐的是,R一直以来常使用于个人电脑的客户端程序上,大家习惯性的下载R安装包,在自己的电脑上安装 -- ...
- 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, ...
- 【R语言系列】R语言初识及安装
一.R是什么 R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两个人共同发明. 其词法和语法分别源自Schema和S语言. R定义:一个能够自由幼小的用于统计计算和绘 ...
- python中换行,'\r','\n'及'、'\r\n'
'\r'的本意是回到行首,'\n'的本意是换行. 所以回车相当于做的是'\r\n'或者'\n\r'.'\r'就是换行并回行首, '\n'就是换行并回行首,用'\r\n'表示换行并回行首. window ...
- 【R笔记】给R加个编译器——notepad++
R的日记-给R加个编译器 转载▼ R是一款强大免费且开源的统计分析软件,这是R的长处,可也是其“缺陷”的根源:不似商业软件那样user-friendly.记得初学R时,给我留下最深印象的不是其功能的强 ...
- 【R语言入门】R语言中的变量与基本数据类型
说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...
- java.io.IOException: Could not delete path 'D:\mycode\reactnative\SecondTest\android\app\build\generated\source\r \release\android\support\v7
问题解决 直观上看是没有删除某个文件,产生的IOException异常,实际上是因为上次编译导致的缓存没有清空导致的. 进入到android目录下运行下面代码清除上次打包时的缓存: ./gradlew ...
- 【转载】 C++中回车换行(\n\r)和换行(\r)的区别
原文:http://blog.csdn.net/xiaofei2010/article/details/8458605 windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回 ...
- R统计建模与R软件
教材目录 第一章 概率统计的基本知识 第二章 R软件的使用 第三章 数据描述性分析 第四章 参数估计 第五章 假设检验 第六章 回归分析 第七章 方差分析 第八章 应用多元分析(I) 第九章 应用多元 ...
- 【R与数据库】R + 数据库 = 非常完美
前言 经常用R处理数据的分析师都会对dplyr包情有独钟,它强大的数据整理功能让原始数据从杂乱无章到有序清晰,便于后期进一步的深入分析,特别是配合上数据库的使用,更是让分析师如虎添翼,轻松搞定Exce ...
随机推荐
- 三个经典的MySQL问题
大家好,今天给大家上3个经典的MySQL问题,希望能对大家有帮助!但是因为笔者计算机水平有限,可能会存在一些错误,烦请指出.斧正!谢谢! 一.在MySQL中INNER JOIN.LEFT JOIN.R ...
- JVM——锁
对象头[每个对象都具有对象头] Mark:对象头的标记(32位),描述对象的 hash.锁信息.垃圾回收标记.年龄:内容包括:①.指向锁记录的指针:②.指向 monitor 的指针:③.GC 标记:④ ...
- QGIS 导入文本数据(WKT)
在做GIS数据处理的时候,经常会遇到原始数据是 text.csv.Excel 等格式的数据.要使用数据前提是要先转换数据. 这里是介绍用 QGIS 导入数据.打开导入方式如下(根据自己的文本类型选择不 ...
- computed的setter妙用
使用场景:当我们用v-model绑定了一个计算属性,想直接设置计算属性时,就要利用到setter demo: <template> <div> <div>First ...
- 什么?又来智能AI编程?让不让我们活了!
无事逛github发现了一款智能AI编程,故下载试试 发现异常好用 推荐给大家 github地址:GitHub - getcursor/cursor:一个用于使用AI 编程的编辑器 支持:C# ,Ja ...
- day3 函数的定义和调用,练习编写简单的程序(记录2)
一.值传递.指针传递.引用传递 值传递: 在值传递中,函数的形参是由实参的副本初始化的,也就是说,函数内部操作的是实参的一个拷贝.值传递适用于传递简单数据类型(如整数.浮点数.字符等)以及小型结构体等 ...
- Apache Hudi 0.9.0版本重磅发布!更强大的流式数据湖平台
1. 重点特性 1.1 Spark SQL支持 0.9.0 添加了对使用 Spark SQL 的 DDL/DML 的支持,朝着使所有角色(非工程师.分析师等)更容易访问和操作 Hudi 迈出了一大步. ...
- 在NodeJS中安装babel
安装babel 打开终端,输入命令:npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node 安装完毕之后 ...
- Java设计模式 —— 桥接模式
10 桥接模式 10.1 桥接模式概述 Bridge Pattern: 将抽象部分与它的实现部分解耦,使得两者都能够独立变化. 桥接模式是一种很实用的结构型模式,如果系统中某个类存在两个独立变化的维度 ...
- AI时代下普通小程序员的想法
在我接触了一系列AI技术后,不禁产生了许多思考.我先后尝试了AI编程.AI写论文.AI写小说.AI绘画等,最近看到了一些关于AI构建虚拟世界以及Auto-GPT的AI类新闻.在这个过程中,我心头涌现出 ...