Este artigo ou se(c)ção cita fontes fiáveis e independentes, mas que não cobrem a maior parte do texto (desde Dezembro de 2010).
Surgido em 19931
Última versão 3.1.0 (10 de abril de 2014)
Foi criada originalmente por Ross Ihaka e por Robert Gentleman no departamento de Estatística da universidade de Auckland, Nova Zelândia, e foi desenvolvido por um esforço colaborativo de pessoas em vários locais do mundo2 .
O nome R provêm em parte das iniciais dos criadores3 e também de um jogo figurado com a linguagem S (da Bell Laboratories, antiga AT&T).
R é uma linguagem e ambiente similar ao S – pode ser considerado uma implementação distinta do S; embora com importantes diferenças, muitos códigos escritos para o S rodam inalterados no R. A implementação comercial de S é S-PLUS.
O código fonte do R está disponível sob a licença GNU4 5 GPL e as versões binárias pré-compiladas são fornecidas para Windows, Macintosh, e muitos sistemas operacionais Unix/Linux.
A linguagem R é largamente usada entre estatísticos e data miners para desenvolver software de estatística6 7 e análise de dados.7 Inquéritos e levantamentos de data miners mostram que a popularidade do R aumentou substancialmente nos últimos anos.8 9 10
5.1 Acelerador e eficiência de memória
7.1 Interfaces de usuário gráficas
7.2 Editores e IDEs
7.3 Linguagens de Script
8 useR! conferências
9 Comparação com SAS, SPSS e Stata
10 Suporte comercial para o R
12 Tutorial Rápido
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 Java11 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.12
Outra força do R são os gráficos estáticos, que podem produzir imagens com qualidade para publicação, incluindo símbolos matemáticos. Gráficos dinâmicos e interativos estão disponíveis através de pacotes adicionais.13
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.14 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)".
Enquanto a R é maioritariamente usada por estatísticos e outros utilizadores que requerem um ambiente para computação estatística e desenvolvimento de software, pode ser igualmente usada como uma caixa de ferramentas para cálculo matricial geral com benchmarks de desempenho comparáveis ao GNU Octave ou ao MATLAB.15
Na R, o largamente preferido16 17 18 19 operador de atribuição é uma seta formada por dois carateres "<-", embora "=" possa ser usado em sua vez.20
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.21
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.
A pesquisa reprodutível e geração automática de relatórios pode ser realizada com pacotes que suportam a execução de código R incorporado em LaTeX, OpenDocument format e outros marcadores (markups).22
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.23
Existem diversos pacotes (snow, multicore, parallel) que disponibilizam paralelismo para o R24 .
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'.
Versão 0.16 – Esta é a última versão alpha desenvolvida incialmente por Ihaka e Gentleman. Muitas das funcionalidades básicas do "White Book" (ver S history) foram implementadas. As listas de discussão começaram em 1de april 1 de 1997.
Interfaces de usuário gráficas
RapidMiner25 26
Weka27 permite a utilização de recursos de mineração de dados em Weka e análise estatística em R.
Editores de texto e ambientes integrados de desenvolvimento (IDEs) com algum suporte para R incluem: Bluefish,28 Crimson Editor, ConTEXT, Eclipse (StatET),29 Emacs (Emacs Speaks Statistics), LyX (módulos para knitr e Sweave), Vim, Geany, jEdit,30 Kate,31 R Productivity Environment (parte da Revolution R Enterprise),32 RStudio,33 TextMate, gedit, SciTE, WinEdt (R Package RWinEdt) e Notepad++.34
As funcionalidades do R foram tornadas acessíveis a partir de diversas linguagens de script como a Python (pelo pacote de interface do RPy35 ), Perl(pelo módulo Statistics::R36 ), e Ruby (com o rsruby37 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 littler38 bem como via Rscript.
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.39 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.40
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.41 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.42
Suporte comercial para o R
Em 2007, a Revolução Analítica foi fundada para disponibilizar suporte comercial para a Revolução R, a sua distribuição do R, que também inclui componentes desenvolvidos pela companhia. Os principais componentes adicionais incluem: ParallelR, o ambiente de produtividade IDE para o R, RevoScaleR (para análise de grandes dados), RevoDeployR, quadro de serviços web, e a capacidade para ler e escrever dados no formato de ficheiro SAS.43
Em outubro de 2011, a Oracle anunciou o Big Data Appliance, que integra o R, o Apache Hadoop, o Oracle Enterprise Linux, e uma base de dados NoSQL com o hardware Exadata.44 45 46 O Oracle R Enterprise47 é agora um dos dois componentes do "Oracle Advanced Analytics Option"48 (o outro componente é o Oracle Data Mining).
Outros grandes sistemas de software comercial que suportam conexões ou integração com o R incluem: JMP,49 Mathematica,50 MATLAB,51 Spotfire,52 SPSS,53 STATISTICA,54 Platform Symphony,55 e SAS56 .
TIBCO, o atual proprietário da linguagem S-Plus, está a permitir que alguns dos seus empregados apoiem ativamente o R participando na sua lista de discussão R-Help (anteriormente mencionada), e pelo patrocínio da série useR das reuniões de grupos de usuários. A Google é um grande utilizador interno do R e publica um guia de estilo.57 Patrocina os projetos R nos seus trabalhos Summer-of-Code, e também suporta financeiramente as séries de reuniões useR.
Para procurar qualquer coisa, digitar help.search("qualquer coisa").
Normalmente, essa procura vai mencionar a biblioteca necessária para rodar a função. Para carregar a biblioteca, digitar library("biblioteca").
É possível escrever comandos em um arquivo e executá-lo, basta digitar source("arquivo").
RSiteSearch("conceito")
A Brief History R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, available from the CRAN website
Contributors, site www.r-project.org
Kurt Hornik. The R FAQ: Why is R named R?. [S.l.: s.n.]. ISBN 3-900051-08-9 Página visitada em 2008-01-29.
Free Software Foundation (FSF) Free Software Directory: GNU R. Página visitada em 2012-11-13.
What is R?. Página visitada em 2009-04-28.
Fox, John and Andersen, Robert. (January 2005). "Using the R Statistical Computing Environment to Teach Social Statistics Courses" (PDF). Department of Sociology, McMaster University.
Vance, Ashlee. "Data Analysts Captivated by R's Power", New York Times, 2009-01-06. Página visitada em 2009-04-28. "R is also the name of a popular programming language used by a growing number of data analysts inside corporations and academia. It is becoming their lingua franca…"
Robert A. Muenchen (2012);The Popularity of Data Analysis Software.
Duncan Temple Lang, Calling R from Java
Jackman, Simon. (Spring 2003). "R For the Political Methodologist" (PDF). The Political Methodologist 11 (1): 20–22. Political Methodology Section,American Political Science Association.
CRAN Task View: Graphic Displays & Dynamic Graphics & Graphic Devices & Visualization. The Comprehensive R Archive Network. Página visitada em 2011-08-01.
Dalgaard, Peter. Introductory Statistics with R. New York, Berlin, Heidelberg: Springer-Verlag, 2002. 10–18, 34 p. ISBN 0387954759
Speed comparison of various number crunching packages (version 2). SciView. Página visitada em 2007-11-03.
R Development Core Team. Writing R Extensions. Página visitada em 14 June 2012. "[…] we recommend the consistent use of the preferred assignment operator '<-' (rather than '=') for assignment."
Google's R Style Guide. Página visitada em 14 June 2012.
Wickham, Hadley. Style Guide. Página visitada em 14 June 2012.
Bengtsson, Henrik. R Coding Conventions (RCC) – a draft. Página visitada em 14 June 2012.
Assignments with the =Operator. Página visitada em 14 June 2012.
Robert A. Muenchen. The Popularity of Data Analysis Software.
up your R code using a just-in-time (JIT) compiler
Package 'parallel' (em inglês)
R Extension Presented on RCOMM 2010
Data Mining / Analytic Tools Used Poll (May 2010).
RWeka: An R Interface to Weka. R package version 0.3–17. Kurt Hornik, Achim Zeileis, Torsten Hothorn and Christian Buchta. Página visitada em 2009.
Customizable syntax highlighting based on Perl Compatible regular expressions, with subpattern support and default patterns for..R, tenth bullet point, Bluefish Features, Bluefish website, retrieved 2008-07-09.
Stephan Wahlbrink. StatET: Eclipse based IDE for R. Página visitada em 2009-09-26.
Jose Claudio Faria. R syntax. Página visitada em 2007-11-03.
Syntax Highlighting. Kate Development Team. Arquivado do original em 2008-07-07. Página visitada em 2008-07-09.
R Productivity Environment. Revolution Analytics. Página visitada em 2011-09-03.
J. J. Alaire and colleagues. RStudio: new IDE for R. Página visitada em 2011-08-04.
NppToR: R in Notepad++. sourceforge.net. Página visitada em 2010-07-11.
page on CPAN
RSRuby rubyforge project
littler web site
useR! – International R User Conference
of R to SAS, Stata and SPSS
Vance, Ashlee. "Data Analysts Captivated by R's Power", The New York Times, 2009-01-07.
Timothy Prickett Morgan (2011); 'Red Hat for stats' goes toe-to-toe with SAS, The Register, February 7, 2011.
Doug Henschen (2012);Oracle Makes Big Data Appliance Move With Cloudera, InformationWeek, January 10, 2012.
Jaikumar Vijayan (2012);Oracle's Big Data Appliance brings focus to bundled approach, ComputerWorld, January 11, 2012.
Timothy Prickett Morgan (2011);Oracle rolls its own NoSQL and Hadoop Oracle rolls its own NoSQL and Hadoop, The Register, October 3, 2011.
Chris Kanaracus (2012);Oracle Stakes Claim in R With Advanced Analytics Launch, PC World, February 8, 2012.
Doug Henschen (2012);Oracle Stakes Claim in R With Advanced Analytics Launch, InformationWeek, April 4, 2012.