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 R. O seu desenvolvemento comezárono Ross Ihaka e Robert Gentleman en 1995 como unha implementación da linguaxe de programación S. 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 anos 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 masiva. 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 arquivos. O desenvolvemento manteno agora o equipo R Development Core Team. É apoiado pola Fundación R, que se creou no 2002 con tal fin. J. Chambers, creador de S, é membro do equipo de traballo do R Core Team. 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: 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. 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 R. 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ña. Microsoft R Open distribúe un mirror con versións estáticas de CRAN e denomínao MRAN.
Outros repositorios de R son r-forge, Bioconductor e Omegahat. 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 paquetes.
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
Algunhas interfaces de traballo para R son: 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.
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.