R (linguaxe de programación)
linguaxe de programación From Wikipedia, the free encyclopedia
Remove ads
R é unha linguaxe de programación, coa súa contorna, para a estatística computacional e a produción de gráficos[1]. O seu desenvolvemento está apoiado e é xestionado pola Fundación para a Estatística Computacional R[1][2]. O seu desenvolvemento comezárono Ross Ihaka e Robert Gentleman en 1995 como unha implementación[3] da linguaxe de programación S[4]. R é un proxecto de GNU[5][6]. O código fonte de R está escrito en C, Fortran e R[7]. 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[8][9]. Recentes estudos e enquisas mostraron que a popularidade de R aumentou nos últimos anos[10][11][12][13] e que se colocou xa como a quinta linguaxe máis popular entre os desenvolvedores[14]. 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[15].
Ademais de liña de comandos, R pódese empregar en varias interfaces gráficas[16].
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[17][18]. 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[19][20].
Remove ads
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[21]. 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.[22]
R creárona Ross Ihaka e Robert Gentleman desde o departamento de estatística da Universidade de Auckland, Nova Celandia[23]. Desde mediados de 1997 houbo un grupo activo de desenvolvedores traballando no código de R en repositorios CVS de arquivos[24]. O desenvolvemento manteno agora o equipo R Development Core Team[25]. É apoiado pola Fundación R, que se creou no 2002 con tal fin[26][27]. J. Chambers, creador de S, é membro do equipo de traballo do R Core Team[28]. O nome de R provén das iniciais dos nomes dos dous creadores e seguindo o xogo co nome da linguaxe S[29]. O proxecto concibiuse no 1992 e lanzou a súa primeira versión en 1994. A primeira versión beta foi no 2000[30][31][32].
Remove ads
Fitos
En R News do CRAN están recompilados todos os cambios que se fixeron na linguaxe[33]. Os principais fitos e cambios na linguaxe foron estes:
Remove ads
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++,[38] Java,[39] .NET[40] ou Python e manipular os obxectos directamente en R [41]. 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[42].
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[43].
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 [44].
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[45]. 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[46][47]. Microsoft R Open distribúe un mirror con versións estáticas de CRAN e denomínao MRAN[48].
Outros repositorios de R son[49] r-forge[50], Bioconductor[51] e Omegahat[52]. 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[53]. 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[54].
Na sección de Task Views (visor de tarefas) [55] 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[56][57].
Remove ads
Interfaces
Interfaces gráficas

Algunhas interfaces de traballo para R son [58]:
- Architect – interface de desenvolvemento multiplataforma para análise de datos científicos en Eclipse e StatET.
- Deducer[59] – 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 [60]
- 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 [61].
- Tinn-R - GUI para R.
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)[62], Emacs (Emacs Speaks Statistics), LyX (con módulos para knitr e Sweave), Vim, jEdit[63], Kate[64], Sublime Text, TextMate, Atom, WinEdt (libraría R RWinEdt), Notepad++[65], Visual Studio[66] e Architect.[67]
Scripting
As funcionalidades de R están dispoñibles para empregar a canda outras linguaxes de programación como Python [68], Perl[69], Ruby[70], F#[71] e Julia[72]. O scripting para chamar a outras linguaxes pódese facer en R empregando interfaces como littler [73].
Remove ads
Notas
Véxase tamén
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads