R é viável para código de produção (implantado)


25

Eu li vários artigos que falam sobre empresas como Google, Facebook e muitos outros que usam R para pesquisa. O outro cenário sobre o qual eu li é sobre empresas que usam R para prototipar uma solução de análise e depois reimplementá-la em outro idioma.

Estou tentando encontrar literatura sobre empresas que usam R para código de análise de produção real. Um caso de uso pode ser um sistema de recomendação com o qual o usuário interage por meio de uma página da web que obtém uma resposta de um script R executado em um servidor remoto. O fato de estar tendo problemas para encontrar esses relatórios me faz pensar se é desaconselhável. Se sim, por quê?


11
Essa é uma boa pergunta. Eu tenho um palpite, mas não sei o suficiente para fazer disso uma resposta real. Minha suspeita é que, como o R é distribuído sob a GPL, qualquer produto derivado que a utilize também deve ser gratuito e de código aberto. Isso pode significar que as empresas que desejam lucrar com o software corporativo se afastariam do R porque não seriam capazes de vender o produto.
gregmacfarlane

3
Somente se o seu lucro for baseado na venda do software - e mesmo assim, algumas pessoas ainda entregam o software como, por exemplo, o RStudio, cujo código fonte está no github.
Dirk Eddelbuettel

Respostas:


16

Sim. Veja, por exemplo, nesta página, a maravilhosa instância do servidor RServe R sem cabeça (do membro do R Core, Simon Urbanek), que lista essas implantações:

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

com links na página mencionada acima.

A "indústria" tende a ser mais cautelosa em relação aos detalhes do que a academia, por isso você será pressionado a encontrar declarações "oficiais". Mas fornecedores como o Revolution Analytics ou o Oracle ship R e seus vendedores podem ter histórias para você ...


3
+1 para vendedores. Digamos que você esteja interessado em comprar algo, e um bom número de vendedores distribuirá o SSN do CEO.
Fomite

1

Normalmente, não R é uma linguagem interpretada, que em média é muitas vezes mais lenta que o código compilado equivalente. Embora a conversão de seu programa para C, Fortran ou Java exija um investimento significativo, o código pode literalmente executar de 10 a 100 vezes mais rápido que uma versão R equivalente. Além disso, o R possui ferramentas muito limitadas para manipular grandes conjuntos de dados, especialmente aqueles que requerem clusters para processar ou requerem hardware especial. Além disso, a maioria das implementações comerciais precisa fornecer interfaces com o usuário e se encaixar nas estruturas existentes, que normalmente são escritas em outros idiomas. Embora você possa interagir com o código R existente da maioria das linguagens compiladas (existem wrappers por aí), você descobriria que suas rotinas numéricas principais ainda não seriam mais rápidas que o código R original. No fim do dia,


2
> (...) o código pode literalmente executar 10-100X mais rápido que uma versão R equivalente, eu não concordo. Quase todas as bibliotecas R são escritas em C ou Fortran. OR funciona principalmente como uma "cola" entre eles, e seu desempenho relativamente baixo não conta.
Adam Ryczkowski

11
Não é verdade. Embora a biblioteca principal possa ser escrita em C, a maioria dos algoritmos de alto nível em R é escrita em R. A otimização do JIT está alterando as regras no que diz respeito ao desempenho de linguagens interpretadas versus linguagens compiladas, mas, tanto quanto eu sei, não há nenhum esforço. estas linhas em andamento para R (Python tem um esforço robusto: veja PyPy).
user1337732

11
Uso regularmente o R para trabalhar em matrizes com tamanho de 2 GB.
Jan Galkowski

0

Acredito (mas isso é baseado em uma anedota) que R tende a ser usado mais como linguagem de prototipagem pelas empresas que você mencionou acima. R se destaca na tarefa de desenvolver e testar vários modelos de maneira rápida e eficaz. No entanto, não é um bom ajuste para tarefas de personalização, pois geralmente elas precisam ocorrer quando o usuário interage com um site específico e acredito (novamente, isso é principalmente uma anedota) que esses modelos tendem a ser reescritos em uma linguagem compilada (Java, C, C ++).

Dito isto, boa pergunta e eu adoraria provar que estou errado nisso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.