linguaxe de programación From Wikipedia, the free encyclopedia
R é unha linguaxe de programación, coa súa contorna, para a estatística computacional e a produción de gráficos[3]. O seu desenvolvemento está apoiado e é xestionado pola Fundación para a Estatística Computacional R[3][4]. O seu desenvolvemento comezárono Ross Ihaka e Robert Gentleman en 1995 como unha implementación[5] da linguaxe de programación S[6]. R é un proxecto de GNU[7][8]. O código fonte de R está escrito en C, Fortran e R[9]. 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.
R | |
---|---|
Paradigma | multiparadigma, orientado a obxectos, imperativa, funcional, procedural, reflexiva |
Data | 1993 |
Deseñador | Ross Ihaka e Robert Gentleman |
Desenvolvedor | R Core Team |
Última versión | 3.4.2 (Short Summer)[1] |
Tipo de dato | dinámica |
Postas en funcionamento | Agosto de 1993 |
Influído por | S, Scheme, Common Lisp, XLispStat |
Influíu | Julia |
Sistema operativo | Multiplataforma (GNU/Linux, Mac OS X, Windows) |
Licenza | GNU GPL v2[2] |
Web | www.r-project.org |
A linguaxe R emprégase amplamente na estatística, na análise e minado de datos e para o desenvolvemento de software estatístico[10][11]. Recentes estudos e enquisas mostraron que a popularidade de R aumentou nos últimos anos[12][13][14][15] e que se colocou xa como a quinta linguaxe máis popular entre os desenvolvedores[16]. 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[17].
Ademais de liña de comandos, R pódese empregar en varias interfaces gráficas[18].
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[19][20]. 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[21][22].
R é unha implementación da linguaxe de programación S con características inspiradas na semántica de ámbito léxico que ten Scheme[23]. 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.[24]
R creárona Ross Ihaka e Robert Gentleman desde o departamento de estatística da Universidade de Auckland, Nova Celandia[25]. Desde mediados de 1997 houbo un grupo activo de desenvolvedores traballando no código de R en repositorios CVS de arquivos[26]. O desenvolvemento manteno agora o equipo R Development Core Team[27]. É apoiado pola Fundación R, que se creou no 2002 con tal fin[28][29]. J. Chambers, creador de S, é membro do equipo de traballo do R Core Team[30]. O nome de R provén das iniciais dos nomes dos dous creadores e seguindo o xogo co nome da linguaxe S[31]. O proxecto concibiuse no 1992 e lanzou a súa primeira versión en 1994. A primeira versión beta foi no 2000[32][33][34].
En R News do CRAN están recompilados todos os cambios que se fixeron na linguaxe[35]. Os principais fitos e cambios na linguaxe foron estes:
Lanzamento | Data | Descrición |
---|---|---|
0.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.49 | 23/4/1997 | Esta é a versión máis antiga das que se conservan en CRAN[36]. CRAN estréase este día, contando con tres mirrors e con 12 paquetes[37]. Libéranse as versións alfa de R para Microsoft Windows e Mac OS Clásico. |
0.60 | 5/12/1997 | R convértese en parte do Proxecto GNU. O código alóxase e mantense usando CVS. |
0.65.1 | 7/10/1999 | Primeiras versións de updates.packages() e install.packages(), que serven para descargar e instalar paquetes de CRAN[38]. |
1.0 | 29/2/2000 | Lánzase a primeira versión que os desenvolvedores consideraron estable e lista para o uso[39] |
1.4 | 19/12/2001 | Impleméntanse os métodos S4 e a primeira versión de R para Mac OS X. |
2.0 | 4/10/2004 | Introdúcense os deseños de carga aprazada, que facilitan rápidas execucións con menor custo para a memoria do sistema. |
2.1 | 18/4/2005 | Soporte do sistema de codificación UTF-8 e inicio do proceso de internacionalización e localización a distintas linguas. |
2.11 | 22/4/2010 | Soporte para sistemas Windows de 64 bits. |
2.13 | 14/4/2011 | Engádese unha función de compilación que acelera a función de conversión a código byte. |
2.14 | 31/10/2011 | Introdúcense a obriga de espazo de nomes nos paquetes. Engádese outro paquete parallel. |
2.15 | 30/3/2012 | Novas funcións de balance. Mellórase a velocidade de serialización de vectores longos. |
3.0 | 03/04/2013 | Impleméntanse os vales numéricos de valores de 231 e de aínda máis en sistemas 64 bits. |
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++,[40] Java,[41] .NET[42] ou Python e manipular os obxectos directamente en R [43]. 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[44].
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[45].
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 [46].
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[47]. 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[48][49]. Microsoft R Open distribúe un mirror con versións estáticas de CRAN e denomínao MRAN[50].
Outros repositorios de R son[51] r-forge[52], Bioconductor[53] e Omegahat[54]. 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[55]. 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[56].
Na sección de Task Views (visor de tarefas) [57] 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[58][59].
Algunhas interfaces de traballo para R son [60]:
A lista de editores de texto que teñen un soporte integrado de R conta con: Eclipse (StatET)[64], Emacs (Emacs Speaks Statistics), LyX (con módulos para knitr e Sweave), Vim, jEdit[65], Kate[66], Sublime Text, TextMate, Atom, WinEdt (libraría R RWinEdt), Notepad++[67], Visual Studio[68] e Architect.[69]
As funcionalidades de R están dispoñibles para empregar a canda outras linguaxes de programación como Python [70], Perl[71], Ruby[72], F#[73] e Julia[74]. O scripting para chamar a outras linguaxes pódese facer en R empregando interfaces como littler [75].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.