Pesquisa · Mapa mental

R (linguagem de programação)

R é uma linguagem de programação multi-paradigma orientada a objetos, programação funcional, dinâmica, fracamente tipada, voltada à manipulação, análise e visualização de dados. Foi criado originalmente por Ross Ihaka e por Robert Gentleman no departamento de Estatística da Universidade de Auckland, Nova Zelândia. Atualmente é mantido por uma comunidade de colaboradores voluntários que contribuem com código fonte da linguagem e com a expansão de funcionalidades por bibliotecas.

Fonte: Wikipédia (pt)Atualizado em 26/06/2026
01

História

Ross Ihaka e Robert Gentleman trabalhavam e eram colegas no departamento de estatística na Universidade de Auckland. Os dois compartilhavam o interesse por estatística computacional e viram a necessidade de um melhor ambiente de software para o laboratório da área. Os dois não acharam nenhum software compatível no mercado e começaram a tentar desenvolver um eles mesmos. Por conta do contato prévio de Ihaka com a linguagem Scheme pareceu natural para eles começar com um interpretador baseado no dessa mesma linguagem porém já prevendo a necessidade de alterações internas consideráveis decidiram escrever o interpretador por conta própria. Segundo Ihaka a tarefa não foi tão difícil quanto parecia graças ao mapeamento do processo existente em livros como o de Hal Abelson e Gerald Sussman The Structure and Interpretation of Computer Programs e ter acesso ao código fonte de diversos interpretadores Scheme também os ajudaram nos detalhes da implementação.

02

Ferramentas de produtividade

Existem diversas GUI para R, incluindo JGR, RKWard, SciViews-R, Rcmdr e, mais recentemente, RStudio. Muitos editores oferecem recursos que facilitam o trabalho com o R: Emacs, Vim, NeoVim, jEdit, Kate, Tinn-R, entre outros. Existem plug-ins para uso com as IDEs Eclipse e Visual Studio. Software construído de modo colaborativo, com novos pacotes e GUIs incluídos a cada intervalo de tempo, antecipando-se até a alguns outros pacotes proprietários, como o complemento com o teste de Scott-Knott para a Análise de Variâncias ANOVA.

03

Recursos estatísticos

A R disponibiliza uma ampla variedade de técnicas estatísticas e gráficas, incluindo modelação linear e não linear, testes estatísticos clássicos, análise de séries temporais (time-series analysis), classificação, agrupamento e outras. A R é facilmente extensível através de funções e extensões, e a comunidade R é reconhecida pelos seus contributos ativos em termos de pacotes. Existem diferenças importantes, mas muito código escrito para S corre inalterado. Muitas das funções padrão do R são escritas no próprio R, o que torna fácil para os usuários seguir as escolhas algorítmicas feitas. Para tarefas computacionais intensivas, os códigos C, C++, e Fortran podem ser ligados e chamados durante a execução. Usuários experientes podem escrever código C ou Java para manipular diretamente objetos R. O R é fortemente extensível através do uso de pacotes enviados pelo utilizador para funções específicas ou áreas específicas de estudo. Devido à sua herança do S, o R possui fortes recursos de programação orientada por objetos, mais que a maioria das linguagens de computação estatística. Ampliar o R também é facilitado pelas suas regras de contexto lexical.

04

Recursos de programação

A R é uma linguagem interpretada tipicamente utilizada através de um Interpretador de comandos. Se um usuário escreve "2+2" no comando de inserção e pressiona enter, o computador responde com "4", conforme se mostra abaixo: Como muitas outras linguagens, a R suporta matrizes aritméticas. A estrutura de dados da R inclui escalares, vetores, matrizes, quadros de dados (similares a tabelas numa base de dados relacional) e listas. O sistema de objetos da R é extensível e inclui objectos para, entre outros, modelos de regressão, séries temporais e coordenadas geoespaciais. A R suporta programação processual com funções e, para algumas funções, programação orientada a objetos com funções genéricas. Uma função genérica atua de forma diferente dependendo do tipo de argumentos que é passado. Por outras palavras a função genérica determina (dispatches) a função (método) específica para aquele tipo de objeto. Por exemplo, a R tem uma função genérica print() que pode imprimir quase qualquer tipo de objeto em R com uma simples sintaxe "print(nomedoobjeto)".

05

Exemplos

Exemplo 1

Os seguintes exemplos ilustram a sintaxe básica da língua e o uso do interface de linha de comando. Na R, o largamente preferido operador de atribuição é uma seta formada por dois caracteres "←", embora "=" possa ser usado em sua vez.

Exemplo 2

Código R curto calcula o conjunto de Mandelbrot através das primeiras 20 iterações da equação z = z² + c mapeados para diferentes constantes complexas c. Este exemplo demonstra:

06

Pacotes

As capacidades da R são estendidas através de pacotes criados pelo usuário, que permitem técnicas estatísticas especializadas, dispositivos gráficos, capacidades de importação/exportação, ferramentas de relatórios, etc. Estes pacotes são primeiro desenvolvidos em R, e por vezes em Java, C e Fortran. Um conjunto básico de pacotes são incluídos com a instalação do R, com 5300 pacotes adicionais (a partir de abril 2012) disponíveis em Comprehensive R Archive Network (CRAN), Bioconductor, e outros repositórios. A página "Task Views" (lista de assuntos) no website da CRAN lista a vasta gama de aplicações (Finança, genética, aprendizagem de máquinas, imagiologia médica, ciências sociais e estatísticas espaciais) nos quais R tem sido aplicada e para que pacotes está disponível. Outros recursos do pacote R incluem Crantastic, um site comunitário para avaliação e revisão de todos os pacotes CRAN, e também R-Forge, uma plataforma central para o desenvolvimento colaborativo de pacotes R, software relacionado com R, e projetos. Tem muitos documentos não publicados, pacotes beta e versões de desenvolvimento de pacotes CRAN.

Acelerador e eficiência de memória

Teste é um pacote jit que disponibiliza compilação JIT, e outro pacote compilador que oferece um compilador de byte-code para o R. Existem diversos pacotes (snow, multicore, parallel) que disponibilizam paralelismo para o R. O pacote ff economiza memória arquivando dados no disco. As estruturas de dados comportam-se como se estivessem na RAM. O pacote ffbase disponibiliza funções estatísticas básicas para o 'ff'.

07

Versões

A lista completa de alterações é mantida no arquivo "R News" no site CRAN. Alguns destaques para algumas das principais versões estão listados abaixo.[carece de fontes?]

08

Interfaces

Editores e IDEs

Editores de texto e ambientes integrados de desenvolvimento (IDEs) com algum suporte para R incluem: Tinn-R, Bluefish, Crimson Editor, ConTEXT, Eclipse (StatET), Emacs (Emacs Speaks Statistics), LyX (módulos para knitr e Sweave), Vim, Geany, jEdit, Kate, R Productivity Environment (parte da Revolution R Enterprise) RStudio, TextMate, gedit, SciTE, WinEdt (R Package RWinEdt) e Notepad++.

Linguagens de Script

As funcionalidades do R foram tornadas acessíveis a partir de diversas linguagens de script como a Python (pelo pacote de interface do RPy), Perl(pelo módulo Statistics::R), e Ruby (com o rsruby rubygem). PL/R pode ser usado juntamente, ou em vez da linguagem de script PL/pgSQL no sistema de gestão de bases de dados PostgreSQL e Greenplum. Scripts no próprio R são possíveis via littler bem como via Rscript.

09

useR! conferências

"useR!" é o nome dado à reunião anual oficial dos usuários do R. O primeiro destes eventos foi o useR! 2004 em maio de 2004, em Viena de Áustria. Depois de saltar 2005, a conferência useR tem tido lugar anualmente, alternando habitualmente entre localizações na Europa e na América do Norte.

Brasil

No Brasil, uma vez a cada dois anos se realiza o "RDay", encontro para linguagem R entre universitários.

10

Comparação com SAS, SPSS e Stata

O consenso geral é que o R se compara bem com outros populares pacotes estatísticos, tais como SAS, SPSS e Stata. Em janeiro de 2009, o New York Times publicou um artigo sobre o aumento de aceitação do R entre os analistas de dados e apresentando uma potencial ameaça para a quota de mercado ocupada por pacotes estatísticos comerciais, como o SAS.

Vídeos recomendados

Fontes consultadas

Continue pesquisando