R ou Python para Análise de Dados?

R ou Python para Análise de Dados?

Quando se trata de Ciência de Dados, uma pergunta sempre vem à tona: R ou Python para análise de dados? Apesar de existirem muitas outras possibilidades, estas duas linguagens tem polarizado as discussões sobre que ferramenta utilizar para análise. As duas linguagens são simples (e gratuitas) para instalar e relativamente fáceis de começar a usar. Se você está começando sua jornada no mundo da Ciência de Dados e não tem experiência com programação em geral, faz sentido aprender R ou Python primeiro.

R

R tem uma história longa e confiável e uma forte comunidade de suporte no setor de dados. Juntos, esses fatores significam que você pode contar com o apoio on-line de outros, se você precisar de ajuda ou tiver dúvidas sobre a utilização da linguagem. Além disso, há uma abundância de pacotes lançados publicamente (mais de 5.000), que podem ser baixados para estender as capacidades da linguagem. Isso faz R ótimo para a execução de complexas análises de dados exploratórios. R também se integra bem com outras linguagens de programação como C ++, Java e C. Quando é preciso fazer análises estatísticas pesadas ou gráficas, R mostra sua força.

Python

Python é uma linguagem de programação de uso geral que pode fazer praticamente qualquer coisa que você precisa: coleta de dados, engenharia de dados, análise, Web Scraping, construção de aplicativos web e muito mais. É mais simples de dominar do que R se você já aprendeu uma linguagem de programação orientada a objetos como Java ou C ++. Além disso, como Python é uma linguagem de programação orientada a objetos, é mais fácil escrever em grande escala e com código robusto, do que com R.

Embora Python não tenha um conjunto de pacotes e bibliotecas tão abrangente como os disponíveis para a linguagem R, a combinação de Python com ferramentas como Pandas, Numpy, Scipy, Scikit-learn e Seaborn, torna a linguagem uma das principais escolhas entre os Cientistas de Dados. A linguagem também está lentamente se tornando útil para tarefas em Machine Learning e de base para o trabalho estatístico intermediário (anteriormente apenas sob o domínio de R).

Abaixo uma tabela comparativa entre as duas linguagens:

Python

R

Data de criação

1991

1995

Versão atual

3.5.0

(lançada em 13/09/2015)

3.2.3

(lançada em 10/12/2015)

Origem

Python foi inspirada na linguagem C, Modula-3 e ABC.

R foi uma implementação da linguagem S da Bell Labs.

Usabilidade

Codificação e Debugging é mais fácil, pois a sintaxe é bem simples.

Modelos estatísticos podem ser escritos com poucas linhas de código.

Padronização

Python possui um padrão mais bem definido, permitindo que diferentes tipos de funcionalidades sejam escritos da mesma forma.

A mesma funcionalidade pode ser escrita de diversas formas diferentes em R.

Flexibilidade

Python é bastante flexível e permite facilmente escrever algo a partir do zero.

É fácil escrever formulas complexas em R. Praticamente todos os tipos de testes e modelos estatísticos estão disponíveis para uso na linguagem.

Repositórios

PyPi é o repositório de Python, com diversas bibliotecas. Usuários podem contribuir com novos pacotes.

CRAN (Comprehensive R Archive Network) é o repositório da linguagem R em que cada usuário pode contribuir com novos pacotes (que são coleções de funções em R com código compilado). Esses pacotes podem ser facilmente instalados com uma linha de código.

Usando as duas linguagens juntas

Use a biblioteca RPy2 para executar código R dentro do Python. Ele provê uma interface entre as linguagens.

Use o pacote rPython para executar pacotes do Python dentro do código R. É possível passar e receber dados de Python, chamar funções ou métodos.

Uso em Análise de Dados

Python é principalmente usada quando a análise de dados precisa ser integrada com aplicativos web ou se o código estatístico precisa ser integrado em um servidor em ambiente de produção, que vai servir muitos usuários.

R é principalmente usada quando as atividades de análise de dados requerem computação standalone (em um único computador) ou análise em servidores individuais.

Tratamento de dados

Python não foi criada inicialmente para análise de dados, mas a linguagem tem crescido rapidamente e cada vez oferece mais recursos.

R é extremamente eficiente em análise de dados, devido seu grande número de pacotes com modelos, fórmulas e testes estatísticos.

IDE

Python IDE, Spyder e IPython Notebook

RStudio

Pacotes mais populares ·      SciPy / NumPy (computação científica)

·      Pandas (manipulação de dados)

·      Matplotlib (gráficos)

·      Scikit-learn (Machine Learning)

·      dplyr, plyr e data.table (manipulação de dados)

·      stringr (manipulação de strings)

·      zoo (time-series)

·      ggvis, lattice e ggplot2 (gráficos)

·      caret (Machine Learning)

Pontos positivos ·      Python é ótima para criação de scripts e automatização de regras para mineração de dados.

·      Se integra facilmente em um fluxo de trabalho de produção de desenvolvimento.

·      Pode ser usada em diferentes partes no processo de desenvolvimento de software (back-end, front-end)

·      IPython Notebook é uma poderosa ferramenta para análise exploratória e apresentações.

·      R é ótimo para prototipagem e para análise estatística.

·      R tem um enorme conjunto de bibliotecas disponíveis para análise de diferentes tipos de estatística.

·      Rstudio IDE é definitivamente uma grande vantagem. Ele facilita a maioria das tarefas tediosas e facilita o fluxo de trabalho.

Pontos Negativos ·      Não é tão completo para análise estatística como R, mas já percorreu um longo caminho nestes últimos anos.

·      Na minha opinião, a curva de aprendizado é mais acentuada do que R, por se tratar de uma linguagem muito mais completa.

·      A sintaxe pode ser obscura, às vezes.

·      É mais difícil de integrar a um fluxo de desenvolvimento de produção.

·      Na minha opinião, é mais adequado para tarefas do tipo “consultoria”.

Propósito

Python é uma linguagem de uso geral, com características inerentes a outras linguagens de programação de computadores. Isso permite que pessoas com diferentes backgrounds possam utilizar a linguagem.

R foi desenvolvida por estatísticos, para estatísticos. Engenheiros, cientistas e estatísticos sem conhecimento de programação de computadores, consideram R fácil de usar.

Velocidade

Python é considerada uma das linguagens de programação mais velozes atualmente.

R foi desenvolvida para fazer análise de dados, não para ser rápida. Entretanto, o código pode ser otimizado. O problema, é que a linguagem é bastante utilizada por quem não possui conhecimentos de programação, tornando o código mais lento do que deveria.

Em geral, você não vai errar se optar por aprender Python ou R para análise de dados. Cada linguagem tem seus prós e contras em diferentes cenários e tarefas. Além disso, existem bibliotecas para usar Python com R e vice-versa, de modo que aprender uma não vai impedi-lo de aprender e usar a outra. Talvez a melhor solução seja utilizar as orientações acima para decidir qual das duas linguagens começar a aprender e em seguida, fortalecer seu conjunto de habilidades aprendendo a outra.

Portanto, não existe a melhor linguagem. A pergunta chave é: que problema de negócio precisa ser resolvido? E a partir daí, escolher a melhor ferramenta. Ao longo da minha carreira aprendi que não existe a melhor tecnologia. Existe tecnologia que resolve melhor um problema da área de negócios. No fim, é para isso que todas as tecnologias são usadas.

David Matos

7 comments

  1. Não vejo problemas em aprender as duas linguagens, só teria a agregar no conhecimento.

    Eu por exemplo, aprendo um pouco das duas sempre que possível.

  2. Gostaria de aprender ambas linguagens, como posso começar?
    Conhecem algum curso interessante sobre o assunto que posso me dedicar ou o negócio é youtube mesmo?

    obrigado!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *