R (linguagem de programação)
R é uma linguagem de programação multi-paradigma, orientada a objetos, funcional, dinâmica e fracamente tipada, desenvolvida especificamente para manipulação, análise e visualização de dados. Criada por Ross Ihaka e Robert Gentleman na Universidade de Auckland, Nova Zelândia, R é atualmente mantida por uma comunidade global de colaboradores voluntários que expandem suas funcionalidades através de bibliotecas e código-fonte.
Pontos-chave
- R é uma linguagem de programação multi-paradigma focada em análise e visualização de dados.
- Foi criada por Ross Ihaka e Robert Gentleman na Universidade de Auckland, Nova Zelândia.
- Sua manutenção é feita por uma comunidade global de colaboradores voluntários.
- A linguagem é altamente extensível através de pacotes e suporta integração com outras linguagens.
- R é uma alternativa robusta e de código aberto a softwares estatísticos comerciais como SAS e SPSS.
Ross Ihaka e Robert Gentleman, colegas no departamento de estatística da Universidade de Auckland, identificaram a carência de um ambiente de software adequado para estatística computacional. Inspirados pela linguagem Scheme e com acesso a recursos como o livro 'The Structure and Interpretation of Computer Programs', decidiram desenvolver seu próprio interpretador, dando origem ao R.
A comunidade R desenvolveu diversas interfaces gráficas de usuário (GUIs) como JGR, RKWard, SciViews-R, Rcmdr e, notavelmente, RStudio, para facilitar o trabalho com a linguagem. Além disso, muitos editores de texto e IDEs (como Emacs, Vim, Eclipse e Visual Studio) oferecem suporte e plugins, garantindo um ecossistema rico e colaborativo que se antecipa a pacotes proprietários, como o complemento com o teste de Scott-Knott para ANOVA.
R oferece uma vasta gama de técnicas estatísticas e gráficas, incluindo modelagem linear e não linear, testes clássicos, análise de séries temporais, classificação e agrupamento. Sua extensibilidade é um ponto forte, com muitas funções padrão escritas em R, permitindo aos usuários entender as escolhas algorítmicas. Para tarefas computacionalmente intensivas, R pode integrar código C, C++ e Fortran. Sua herança do S confere-lhe robustos recursos de programação orientada a objetos e regras de contexto lexical que facilitam a ampliação.
R é uma linguagem interpretada, tipicamente usada via linha de comando. Suporta aritmética de matrizes e possui estruturas de dados como escalares, vetores, matrizes, data frames (similares a tabelas de banco de dados) e listas. Seu sistema de objetos é extensível e inclui modelos de regressão, séries temporais e coordenadas geoespaciais. R suporta programação procedural com funções e programação orientada a objetos com funções genéricas, que adaptam seu comportamento ao tipo de argumento, como a função `print()` que imprime diversos objetos com uma sintaxe simples.
Sintaxe Básica e Atribuição
Este exemplo demonstra a sintaxe fundamental da linguagem R e o uso da interface de linha de comando. Em R, o operador de atribuição preferido é a seta '←', embora o sinal de '=' também possa ser utilizado.
Cálculo do Conjunto de Mandelbrot
Um breve código R calcula o conjunto de Mandelbrot através das primeiras 20 iterações da equação z = z² + c, mapeadas para diferentes constantes complexas 'c'. Este exemplo ilustra a capacidade de R para computações complexas.
As capacidades do R são vastamente ampliadas por pacotes criados por usuários, que oferecem técnicas estatísticas especializadas, dispositivos gráficos, ferramentas de importação/exportação e relatórios. Desenvolvidos em R, Java, C e Fortran, esses pacotes estão disponíveis no Comprehensive R Archive Network (CRAN), Bioconductor e outros repositórios. A seção 'Task Views' do CRAN destaca a ampla aplicação do R em áreas como finanças, genética, aprendizado de máquina e ciências sociais. Outros recursos incluem Crantastic para avaliação de pacotes e R-Forge para desenvolvimento colaborativo.
Otimização de Performance e Memória
Pacotes como 'jit' e 'compiler' oferecem compilação JIT e de byte-code para R, respectivamente. Para paralelismo, existem 'snow', 'multicore' e 'parallel'. O pacote 'ff' otimiza o uso de memória arquivando dados em disco, comportando-se como se estivessem na RAM, e 'ffbase' fornece funções estatísticas básicas para 'ff'.
As alterações completas do R são documentadas no arquivo 'R News' no site do CRAN. Esta seção destaca algumas das principais atualizações e melhorias introduzidas em versões significativas da linguagem.
Editores e IDEs com Suporte a R
Diversos editores de texto e ambientes de desenvolvimento integrado (IDEs) oferecem suporte a R, incluindo Tinn-R, Bluefish, Crimson Editor, ConTEXT, Eclipse (com StatET), Emacs (com Emacs Speaks Statistics), LyX, Vim, Geany, jEdit, Kate, RStudio, TextMate, gedit, SciTE, WinEdt e Notepad++.
Acesso ao R via Linguagens de Script
A funcionalidade do R pode ser acessada por meio de outras linguagens de script, como Python (via pacote RPy), Perl (módulo Statistics::R) e Ruby (com rsruby rubygem). PL/R pode ser usado com PostgreSQL e Greenplum. Scripts em R são executáveis via 'littler' e 'Rscript'.
A 'useR!' é a conferência anual oficial para usuários do R. O primeiro evento ocorreu em maio de 2004, em Viena, Áustria. Desde 2006, a conferência é realizada anualmente, alternando entre locais na Europa e América do Norte, promovendo a troca de conhecimentos e o avanço da comunidade R.
RDay no Brasil
No Brasil, o 'RDay' é um encontro bienal dedicado à linguagem R, reunindo universitários e profissionais para discutir e compartilhar experiências sobre a plataforma.
Há um consenso geral de que R se equipara favoravelmente a pacotes estatísticos comerciais populares como SAS, SPSS e Stata. Em janeiro de 2009, o New York Times destacou a crescente aceitação do R entre analistas de dados, apontando-o como uma ameaça potencial à fatia de mercado desses softwares proprietários, devido à sua natureza de código aberto e robustez.


