R (linguaxe de programación)

R é unha linguaxe de programación, coa súa contorna, para a estatística computacional e a produción de gráficos. O seu desenvolvemento está apoiado e é xestionado pola Fundación para a Estatística Computacional RR Core Team (2016). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL http://www.R-project.org/.. O seu desenvolvemento comezárono Ross Ihaka e Robert Gentleman en 1995 como unha implementaciónNas ciencias computacionais, as implementacións son os procesos de elaboración de especificacións técnicas ou de algoritmos como unha parte máis dun aplicativo, un compoñente de software ou outra peza de sistema. As implementacións aplícanse desenvolvendo e usando linguaxes de programación. da linguaxe de programación SR vs Python for Data Science: The Winner is … Martijn Theuwissen, DataCamp. Xuño de 2005. Consultado o 3 de outubro de 2016.. R é un proxecto de GNU. O código fonte de R está escrito en C, Fortran e R. R distribúese baixo a licenza GNU GPL, co cal é de código aberto e libre. Está dispoñible para os sistemas operativos Unix e GNU/Linux, Mac OS X e Windows. Algunhas das características máis relevantes é que se trata dunha linguaxe interpretada e que está orientada a obxectos.

A linguaxe R emprégase amplamente na estatística, na análise e minado de datos e para o desenvolvemento de software estatístico. Recentes estudos e enquisas mostraron que a popularidade de R aumentou nos últimos anosDavid Smith (2012); R Tops Data Mining Software Poll , Java Developers Journal, 31 de maio de 2012Karl Rexer, Heather Allen, e Paul Gearan (2011) 2011 Data Miner Survey Summary , presentado en Predictive Analytics World, outubro de 2011. e que se colocou xa como a quinta linguaxe máis popular entre os desenvolvedores. A bioinformática, a investigación biomédica, ecoloxía e as matemáticas financeiras, entre outros campos de big data, é onde se está a empregar máis. R cítase de xeito común como a lingua franca da ciencia.

Ademais de liña de comandos, R pódese empregar en varias interfaces gráficas.

No repositorio CRAN atópanse máis de 8 mil librarías, ou paquetes de funcións, que amplían a capacidade funcional da base de R. R pode integrarse con distintas bases de datos, como MySQL, MariaDB, SQLite, PostgreSQL ou MongoDB. Existen librarías que facilitan a súa utilización desde linguaxes de programación interpretados como Perl e Python ou en linguaxes de código compilado, como C ou Fortran. O proxecto máis coñecido desenvolvido sobre R é Bioconductor, que conta con máis de 1200 librarías de R e que permite o tratamento de datos de secuenciación xenómica masivaBioconductor - Open Source Software for Bioinformatics.

 Historia 
R é unha implementación da linguaxe de programación S con características inspiradas na semántica de ámbito léxico que ten Scheme. A linguaxe S creáraa John Chambers cando traballaba en Bell Labs. Inda agora cando as dúas linguaxes teñen importantes diferenzas, o código S é executable sen cambios en R.

R creárona Ross Ihaka e Robert Gentleman desde o departamento de estatística da Universidade de Auckland, Nova Celandia. Desde mediados de 1997 houbo un grupo activo de desenvolvedores traballando no código de R en repositorios CVS de arquivosKurt Hornik e Friedrich Leisch. Editorial. The Newsletter of the R Project Volume 1/1, xaneiro de 2001. RNews Volume 1/1, xaneiro de 2001. O desenvolvemento manteno agora o equipo R Development Core TeamLiteralmente, o equipo de desenvolvemento do núcleo de R. É apoiado pola Fundación R, que se creou no 2002 con tal finr-project.org: The R FoundationStatutes of “The R Foundation for Statistical Computing” 10 de setembro de 2002. Vienna, Austria. Statutes of R Foundation (pdf). J. Chambers, creador de S, é membro do equipo de traballo do R Core TeamR-project.org: Board and Auditors. O nome de R provén das iniciais dos nomes dos dous creadores e seguindo o xogo co nome da linguaxe S. O proxecto concibiuse no 1992 e lanzou a súa primeira versión en 1994. A primeira versión beta foi no 2000.

 Fitos 
En R News do CRAN están recompilados todos os cambios que se fixeron na linguaxe. Os principais fitos e cambios na linguaxe foron estes:
LanzamentoDataDescrición0.16Última versión de probas (alfa) que desenvolveron Ihaka e Gentleman, con algunha contribución menor doutros. Implementouse os aspectos fundamentais do Libro branco de S (véxase a historia da S). As listas de correo abríronse o 1 de abril de 1997.0.4923/4/1997Esta é a versión máis antiga das que se conservan en CRAN. CRAN estréase este día, contando con tres mirrors e con 12 paquetes. Libéranse as versións alfa de R para Microsoft Windows e Classic Mac OS.0.605/12/1997R convértese en parte do Proxecto GNU. O código alóxase e mantense usando CVS.0.65.17/10/1999Primeiras versións de updates.packages() e install.packages(), que serven para descargar e instalar paquetes de CRANhttps://cran.r-project.org/src/base/NEWS.0.1.029/2/2000Lánzase a primeira versión que os desenvolvedores consideraron estable e lista para o uso1.419/12/2001Impleméntanse os métodos S4 e a primeira versión de R para Mac OS X.2.04/10/2004Introdúcense os deseños de carga aprazada, que facilitan rápidas execucións con menor custo para a memoria do sistema.2.118/4/2005Soporte do sistema de codificación UTF-8 e inicio do proceso de internacionalización e localización a distintas linguas.2.1122/4/2010Soporte para sistemas Windows de 64 bits.2.1314/4/2011Engádese unha función de compilación que acelera a función de conversión a código byte.2.1431/10/2011Introdúcense a obriga de espazo de nomes nos paquetes. Engádese outro paquete parallel.2.1530/3/2012Novas funcións de balance. Mellórase a velocidade de serialización de vectores longos.3.003/04/2013Impleméntanse os vales numéricos de valores de 231 e de aínda máis en sistemas 64 bits.
 Capacidades na estatística 
R, coas súas librerías, dá soporte para multitude de técnicas estatísticas e de representación gráfica. Isto pasa por modelaxe lineal e non lineal, test estatísticos clásicos, análise de series temporais, clasificación ou clustering, entre outros. Engadidos e novas funcións son fáciles de engadir ao núcleo de R. Isto é grazas a que ten unha comunidade activa de desenvolvedores que depositan novas función en forma de paquetes, que se poden instalar e engadir ao núcleo de R. Case todas as funcións estándar de R escríbense nesta linguaxe así que os usuarios poden comprender a escolleita de algoritmos que fan. Para procesos de altos requirimentos, pódense ligar, e chamar durante a execución, código escrito en C, C++ e Fortran.

Os usuarios avanzados poden escribir e chamar a código escrito en C, C++, Java, .NET ou Python e manipular os obxectos directamente en R "SAS vs. R". R é unha linguaxe altamente ampliable polos paquetes desenvoltos na comunidade, co fin de engadir novas funcionalidades para casos específicos ou orientadas a campos de aplicación concretos.

Grazas á herdanza de S, R ten un maior enfoque en capacidades de programación orientada a obxectos ca outras linguaxes de programación desenvoltas para a estatística. Ampliar as funcionalidade de R é sinxelo xa que ten regras dunha semántica léxica.

Outro punto destacable de R, desde funcións do núcleo ou usando paquetes, é a súa capacidade de representación gráfica; que permite obter gráficos de alta calidade e axeitados para publicacións impresas ou dixitais de calidade e mesmo con símbolos matemáticos incluídos. Ten a posibilidade de crear gráficos estáticos ou dinámicos, en 2 ou 3 dimensións e para crear ou asociar datos a mapas cartográficos.

R ten capacidade de creación de documentos, para resumo de análises, estáticos e dinámicos. O formato Rd de R emprégase para fornecer documentación comprensible, en copia local ou en rede. Emprega un formato de documentación semellante a LaTeX .

 Paquetes en CRAN 
A funcionalidade de R pódese ampliar usando paquetes, que son bloques de código de R creados por desenvolvedors co fin de engadir novas funcións á base da linguaxe. Os paquetes inclúen funcións de R reutilizables, documentación que describe a súa función, detalles de como usalo, código de exemplo de uso e datos de proba. Os paquetes engaden capacidades extra de, como exemplo, técnicas estatísticas, representacións gráficas, importación e tratamento de datos e xeración de informes, entre outros. Os paquetes adóitanse crear en R e ás veces en Java, C, C++ ou Fortran.

Coa instalación inicial de R instálanse un grupo de paquetes con funcións básicas, que suman funcións ao núcleo da linguaxe. Ademais destes, existen máis de 7,801 paquetes adicionais nun repositorio público: a Comprehensive R Archive Network (CRAN). Este é o principal repositorio de R e o que mantén a Fundación e os desenvolvedores voluntarios de RCRAN Repository Policy. Version Revision 3553. CRAN Repository Maintainers. Consultado o 4 de outubro de 2016.. Actualmente CRAN conta con 147 mirrors (repositorios réplica) de 49 estados. Dous deles son da oficina galega de software libre CIXUG e alóxanse na Universidade da CoruñaCRAN Mirrors. Consultado o 6 de outubro de 2016Servidor de réplicas do CIXUG ftp.cixug.es/CRAN/. Microsoft R Open distribúe un mirror con versións estáticas de CRAN e denomínao MRAN.

Outros repositorios de R son r-forger-forge.r-project.org, Bioconductorwww.bioconductor.org/ e Omegahatwww.omegahat.net/ The Omega Project for Statistical Computing. R-Forge é unha plataforma central para a colaboración no desenvolvemento de paquetes e para proxectos de software, ou similares, relacionado dalgún xeito con R. R-Forge aloxa moitos paquetes en fase de probas (en beta) ou en desenvolvemento para logo enviar aos paquetes de CRAN. O proxecto Bioconductor aloxa a paquetes que cobren os procesos de análise de datos xenómicos de secuenciación, como os obtidos con micromatrices de ADN de Affymetrix e cDNA. Ten un enfoque de análise de datos orientada a obxectos aplicada aos datos obtidos en métodos de secuenciación masiva. Bioconductor permite a análise de micromatrices de ADN, sequenciación ou polimorfismos dun só nucleótido (SNPs), entre outros. A versión 3.3 contou con 1211 paquetesBioconductor 3.3 Released. Abril de 2016.

Na sección de Task Views (visor de tarefas)  da web de CRAN hai listas de grupos de paquetes que abranguen diferentes tarefas e campos de aplicación da linguaxe. Arestora hai 33; son grupos que permiten o uso de R para a inferencia bayesiana, a econometría e finanzas, as ciencias sociais, o procesado da linguaxe natural, as series temporais, os datos espaciais e espazo-temporais, a quimiometría e física computacional, a xenética e filoxenética, a análise de datos ambientais e ecoloxía, a computación de alto rendemento ou reproducibilidade en ciencia.

Repositorios públicos de git, como github, empréganse para o desenvolvemento de paquetes de R.

 Interfaces 
 Interfaces gráficas 
miniatura|R Commander. Conta coa interface gráfica en galego.
Algunhas interfaces de traballo para R son Unha edición especial de Journal of Statistical Software describe as diferentes interfaces dispoñibles para R: """:
 Architect – interface de desenvolvemento multiplataforma para análise de datos científicos en Eclipse e StatET.
 Deducer – GUI para análise de datos guiado por menús. 
 Java GUI for R (JGR) – editor e terminal de R multiplataforma baseado en Java.
 Rattle GUI – GUI multiplataforma baseada RGtk2 e deseñada para a minaría de datos.
 R Commander – editor e terminal de R multiplataforma baseado tcltk, con engadidos para Rcmdr. 
 Revolution R Productivity Environment (RPE) – IDE privativa desenvolta sobre Visual Studio-based IDE e parte de Revolution R Enterprise 
 R-GUI - GUI para R. 
 RKWard – GUI e IDE para R do proxecto KDE.
 RStudio – editor e terminal de R multiplataforma de código libre, permite a execución en servidores Linux remotos . 
 Tinn-R - GUI para R.miniatura|RKWard. Conta coa interface gráfica en galego.

 Editores e IDEs 
A lista de editores de texto que teñen un soporte integrado de R conta con: Eclipse (StatET), Emacs (Emacs Speaks Statistics), LyX (con módulos para knitr e Sweave), Vim, jEdit, Kate, Sublime Text, TextMate, Atom, WinEdt (libraría R RWinEdt), Notepad++, Visual Studio e Architect.

 Scripting 
As funcionalidades de R están dispoñibles para empregar a canda outras linguaxes de programación como Python , Perl, Ruby, F# e Julia. O scripting para chamar a outras linguaxes pódese facer en R empregando interfaces como littler  https://github.com/eddelbuettel/littler.

 Notas 

 Véxase tamén 
 Outros artigos 
 GNU Octave
 Maxima
 Scilab

 Ligazóns externas 
 O proxecto R
 The R Reference Manual - Base Package by the R Development Core Team. ISBN 0-9546120-0-0 (vol. 1), ISBN 0-9546120-1-9 (vol. 2)
 Colección librerías en CRAN (Comprehensive R Arquive Network)
 R-Wiki
 Interface Web para R
 R Graph Gallery

Categoría:Linguaxes de programación
Categoría:Estatística
Categoría:Software libre