R是否适用于生产(部署)代码


25

我已经阅读了许多有关R,R和R的公司的文章,例如Google,Facebook和许多其他公司。我读过的另一种情况是,公司使用R来对分析解决方案进行原型设计,然后以另一种语言重新实现。

我正在尝试查找有关使用R进行实际生产分析代码的公司的文献。用例可能是推荐系统,用户可以通过网页与之交互,该网页从远程服务器上执行的R脚本获取响应。我在查找此类报告时遇到困难,这使我想知道是否不建议这样做。如果可以,为什么?


1
这是一个很好的问题。我有一个预感,但我还不足以使这个问题成为现实。我的怀疑是,由于R是根据GPL发行的,因此使用R的任何衍生产品也必须是免费的和开源的。这可能意味着希望从企业软件中获利的公司将转向R,因为它们将无法销售产品。
gregmacfarlane,2012年

3
仅当您的利润是基于销售软件时才可以获得收益,即使如此,仍然有人像RStudio那样赠送该软件,其源代码位于github上。
德克·埃德尔布特尔

Answers:


16

是的。例如,在此页面上查看出色的无头RServe R服务器实例(由R Core成员Simon Urbanek提供),其中列出了以下部署:

Some projects using Rserve:
   The Dataverse Network Project   Phenyx                     "J" interface
   Nexus BPM                       Taverna                    Bio7
   INTAMAP                         Screensaver HTS LIMS       CRISP
   WWARN

在上面引用的页面上带有链接。

与学术界相比,“行业”在细节上往往更为笼统,因此您很难找到“官方”陈述。但是,像Revolution Analytics或Oracle这样的供应商会出售R,他们的销售人员可能会为您提供故事。


3
推销员+1。假设您有兴趣购买某物,那么很多销售人员都会发布其首席执行官的SSN。
Fomite,2012年

1

通常,R不是解释语言,因为它平均比等效的编译代码慢许多倍。在将程序转换为C,Fortran或Java的过程中,虽然投入了巨资,但该代码的运行速度实际上比同等R版本快10-100倍。此外,R具有非常有限的工具来处理大型数据集,尤其是那些需要集群进行处理或需要特殊硬件的工具。此外,大多数商业实现需要提供用户界面并适合现有框架,这些框架通常用其他语言编写。尽管您可以与大多数编译语言中的现有R代码进行交互(那里有包装程序),但您会发现核心数值例程仍不会比原始R代码快任何速度。归根结底,


2
>(...)该代码实际上可以比我不同意的R版本快10-100倍。几乎所有的R库都是用C或Fortran编写的。R主要充当它们之间的“胶水”,其相对较差的性能也不算在内。
亚当·里奇科夫斯基

1
不对。尽管核心库可能是用C编写的,但R中的大多数高级算法都是用R编写的。JIT优化正在改变有关解释型语言和编译型语言性能的规则,但据我所知,我们并没有做出任何努力这些行正在为R进行(Python确实做了很大的努力:请参见PyPy)。
user1337732

1
我经常使用R来处理2 GB的矩阵。
Jan Galkowski

0

我相信(但这是基于轶事),您在上面提到的公司倾向于将R更多地用作原型语言。R擅长快速有效地开发和测试多个模型。但是,它不适合个性化任务,因为这些任务通常需要在用户与特定网站进行交互时进行,并且我相信(同样,这主要是轶事)此类模型倾向于用已编译的语言重写(Java,C,C ++)。

话虽这么说,很好的问题,我很想证明这一点是错误的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.