Melhor resposta
Eu mudei de status para R. Aqui estão minhas observações:
Vantagens:
- R é de código aberto, você “terá acesso a alguns algoritmos ou softwares de última geração realmente legais que as pessoas escreveram para problemas de nicho.
- R tem visualizações melhores. Depois de ter um bom domínio do ggplot2, você pode coisas bem incríveis com quase todos os tipos de dados.
- Achei o R mais fácil para escrever pacotes e funções personalizados.
- R está mais próximo da comunidade de estatísticas / aprendizado de máquina, então você encontrará mais suporte / pacotes do que stata.
- Eu amo o RStudio Gui, especialmente quando trabalho em um servidor.
- R fornece melhor suporte ao Latex.
- R tem uma comunidade e listas de ajuda muito ativas – eles têm sido incrivelmente rápidos no suporte com todas as minhas perguntas.
- R funciona com Big Data! O pacote RHadoop permite escrever scripts MapReduce personalizados usando funções R. Se você alguma vez tiver que lidar com big data e só puder usar Stata, está ferrado.
- Tende a haver muito mais “hacks” em R para problemas complicados como análise de rede, bootstraps personalizados, etc. Assim que você se afasta das implementações convencionais, frequentemente encontro funções de atalho em procedimentos em R, enquanto em Stata você geralmente precisa codificar para sair.
Desvantagens:
- R é open source, você pode ter que esperar um pouco para ter acesso a novos algoritmos se não houver desenvolvimento ativo.
- Stata está muito mais próximo da comunidade econométrica e tem muito mais algoritmos, pacotes e implementações do que R. Se você é um economista, ficará frustrado com a falta de abrangência dos pacotes econométricos.
- Stata tem uma ótima GUI que permite que você escolha interativamente o procedimento que deseja executar e preenche a maioria dos detalhes para você. Isso é ótimo quando se usa uma função que você nunca usou antes. R realmente não tem isso – sinto que quando uso R, fico no Google na metade do tempo.
- Stata é mais rápido que R [1].
- Baixar módulos de stata é um processo muito mais simplificado. Para módulos R no CRAN geralmente não há problema (embora eu tenha tido problemas quando estou usando uma máquina Centos), mas existem vários pacotes essenciais que não estão no CRAN.
- A visualização e plotagem padrão de Stata são muito melhores do que R.
- Stata tem uma ajuda padrão melhor – sinto que posso ler a ajuda de qualquer função e descobrir exatamente o que preciso fazer, ao passo que não me sinto assim por vários pacotes R que estão mal documentados.
- R tem uma sintaxe “WTF” e estrutura de nomenclatura de pacote. A maioria dos projetos de código aberto sim. Sinto falta da simplicidade das funções stata (reg, lm, etc.).
[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html
Resposta
Em geral, quando encontro o advérbio ” obviamente “em uma frase, encontro alguma declaração injustificada em seguida. Aqui, eu discordo de sua afirmação de que R tem “uma sintaxe bizarra”. Todo programador instruído prefere codificar em Haskell ou em algum Lisp, mas o fato é que essas linguagens nunca alcançarão um grande público. R é um Lisp interno (por exemplo, você pode codificar na linguagem em R, mas não em Python), mas está próximo o suficiente de uma linguagem científica externa. Na verdade, como você observou, como uma linguagem para análise de dados , R é realmente a linguagem mais natural e elegante que existe. Se você quiser uma prova disso, verifique a atividade em torno de Python e Julia: implementação de frames de dados (pandas e data.frame em Jlia), fórmulas (patsy), plyr (pandas). E ainda assim, todos esses recursos parecem um tanto enxertados em outras línguas. O que as pessoas percebem como “bizarro” ou “vacilante” é o resultado da concessão ao uso interativo (por exemplo, dimensão reduzida) ou da herança funcional da linguagem.
Concordo que R tem muito áreas a serem melhoradas, mas principalmente não na sintaxe da linguagem. Claro, suas convenções de nomenclatura são inconsistentes; velocidade e gerenciamento de memória são problemas conhecidos; e assim por diante. Por que é que? Algumas razões:
- A diretiva principal de R (de acordo com seu criador, John Chambers) é produzir software confiável. R valoriza muito a precisão e a confiabilidade. Suas funções estatísticas básicas são excelentes; até mesmo seu sistema gráfico básico foi cuidadosamente pensado, desde a categorização do histograma (não é um problema trivial!) até a colocação do texto. A velocidade nunca foi uma grande preocupação, e com razão. Se o problema fosse velocidade e eficiência de memória, estaríamos todos codificando em FORTRAN, que também é fácil e de alto nível. O código-fonte do R base é curto (400 mil LOCs; para comparação, o Numpy sozinho tem o mesmo tamanho) e muito legível. Código que você pode entender e confiar.
- Splus e R foram concebidos nos anos 80 e 90, bem antes da era do “big data” e do surgimento do aprendizado de máquina. Mas R melhorou. O gerenciamento de memória é muito melhor, provavelmente superior ao do MATLAB. Ele ainda tem um longo caminho a percorrer, mas certas coisas podem ser melhoradas (por exemplo, representação de dados internos).
- A equipe de desenvolvimento central tem rotatividade mínima os jovens programadores de 15 anos atrás estão agora na casa dos 50. Além disso, eles estão muito menos envolvidos com a comunidade e compreendem um personagem pictoresco / mítico como Brian Ripley: um professor de Oxford responsável por mais de 70\% dos commits, e não a pessoa mais amigável do planeta e nas listas de discussão R.
- R está implorando por um compilador JIT rápido visando o LLVM, mas essas coisas não acontecem da noite para o dia. Você precisa de uma equipe de programadores excelentes e educados com conhecimento de design de compilador e intérprete, forte ética de trabalho (para lançar um produto em alguns anos) e a humildade para reimplementar uma linguagem existente em vez de criar seu próprio projeto de vaidade. Além disso, consulte o nº 3.