R (llenguatge de programació)

llenguatge de programació

R és un llenguatge de programació i un entorn de desenvolupament de programari per a l'obtenció de càlculs i gràfics estadístics. Fou creat originalment per Ross Ihaka i Robert Gentleman a la Universitat d'Auckland, Nova Zelanda, i actualment està desenvolupat per l'Equip Central de Desenvolupament de R. R és considerat pels seus creadors com una implementació de l'S, amb semàntica derivada de l'Scheme. El nom de R prové parcialment del nom dels dos autors originals, així com d'un joc de paraules sobre el nom 'S'.[2]

Infotaula de llenguatge de programacióR
R logo.svg
Tipusllenguatge de programació, llenguatge de programació multiparadigma, paquet GNU i programari lliure Modifica el valor a Wikidata
Data de creació1993[1]
DissenyRoss Ihaka i Robert Gentleman
DesenvolupadorR Development Core Team
Paradigma de programacióMultiparadigma
Darrera versió estable3.6.0 Abril 26, 2019; fa 3 anys (2019-04-26)
Llenguatge de programacióC, Fortran i R Modifica el valor a Wikidata
Influenciat perS, Scheme, XLispStat
Sistema operatiuMultiplataforma
Codi fontCodi font Modifica el valor a Wikidata
LlicènciaGNU General Public License
Etiqueta d'Stack ExchangeEtiqueta Modifica el valor a Wikidata
Pàgina webwww.r-project.org

R és àmpliament emprat per a desenvolupar programes estadístics i per a anàlisi de dades, i ha esdevingut l'estàndard en què els estadístics desenvolupen nou programari.[3] El codi font de l'R està disponible de franc sota la Llicència Pública General GNU. També hi ha versions pre-compilades per a Microsoft Windows, Mac OS X, així com diversos sistemes operatius Linux i Unix. R empra una interfície de comandes, és a dir que l'usuari ha d'escriure comandes per a obtenir els resultats desitjats, tot i que hi ha diverses interfícies gràfiques disponibles.

CaracterístiquesModifica

L'R proporciona una àmplia varietat de tècniques estadístiques i numèriques, i és altament extensible mitjançant l'ús de llibreries. Les llibreries són creades pels usuaris, que les fan disponibles de franc perquè la resta d'usuaris puguin emprar-les. Cada llibreria sol proporcionar eines per a un cert tipus de funció o àmbit d'estudi. Com que inicialment l'R es basà en el llenguatge S, té millor capacitat per a programació orientada a objectes que la majoria d'altres llenguatges de programació estadística. Desenvolupar extensions per a R també és facilitat per la seva permissivitat sintàctica.[4]

Un altre punt fort de l'R és la seva capacitat gràfica, els quals disposen d'una qualitat suficient per a ser inclosos en publicacions científiques, són altament configurables i poden incloure símbols matemàtics.

Tot i que l'R és majoritàriament emprat per estadístics i altres analistes de dades o programadors, també es pot emprar com un conjunt d'eines per a la computació matemàtica que proporciona resultats comparables a GNU Octave i el seu corresponent programa amb llicència, MATLAB (versió < 7).[5]

ExempleModifica

El següent exemple mostra el fonaments de la sintaxi de programació de R tot utilitzant una interfície de línia d'ordres.

Per conveni utilitzant R és preferible utilitzar[6][7][8] una fletxa formada pels dos caràcters "<-" en comptes d'"=", com a operador d'assignament o igualtat. Tot i això també és possible utilitzar el signe "=".[9]

> x <- c(1,2,3,4,5,6)   # Creem un [[vector]] (llista ordenada de valors)
> y <- x^2              # Elevem al quadrat els elements del vector x
> print(y)              # Mostra y (el vector amb els valors al quadrat)
[1]  1  4  9 16 25 36
> mean(y)               # Calcula la [[mitjana aritmètica]] del vector y
[1] 15.16667
> var(y)                # Calcula la [[variància]] de la mostra
[1] 178.9667
> lm_1 <- lm(y ~ x)     # Troba el model de regressió lineal "y = f(x)" o "y = B0 + (B1 * x)" 
                        # guarda els resultats com a lm_1
> print(lm_1)           # Mostra el model de lm_1

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
     -9.333        7.000 

> summary(lm_1)          # Calcula i mostra els estadístics d'ajustament del model lm_1

Call:
lm(formula = y ~ x)

Residuals:
1       2       3       4       5       6
3.3333 -0.6667 -2.6667 -2.6667 -0.6667  3.3333

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -9.3333     2.8441  -3.282 0.030453 *
x             7.0000     0.7303   9.585 0.000662 ***
---
Signif. codes:  0***0.001**0.01*0.05.0.1 ‘ ’ 1

Residual standard error: 3.055 on 4 degrees of freedom
Multiple R-squared: 0.9583,	Adjusted R-squared: 0.9478
F-statistic: 91.88 on 1 and 4 DF, p-value: 0.000662

> par(mfrow=c(2, 2))     # Demana una distribució de gràfics de 2x2
> plot(lm_1)             # Mostra els gràfics de diagnòstic del model de regressió lm_1

 

LlibreriesModifica

Les possibilitats que ofereix l'R s'estenen a través de llibreries creades pels usuaris, que incorporen tècniques estadístiques especialitzades, dispositius gràfics, entorn integrat de desenvolupament i capacitats per a importar i exportar dades a una àmplia varietat de formats. També disposa de la llibreria Sweave, la qual integra els càlculs estadístics i la creació de documents científics, i que permet generar articles de forma automatitzada.

Les llibreries solen desenvolupar-se emprant R, LaTeX, Java, i sovint C i Fortran. Per defecte, a l'instal·lar R venen inclosos unes quantes llibreries bàsiques, però en total n'hi ha més de 1.000 disponibles. Les llibreries més notables es llisten, juntament amb comentaris, al web oficial R Task View Arxivat 2007-06-25 a Wayback Machine..

L'OpenMx és una llibreria especialitzada en modelització d'equacions estructurals que aprofita i expandeix les capacitats el llenguatge R.

ExtensionsModifica

La comunitat de bioinformàtica ha iniciat un esforç altament reeixit per a emprar R per l'anàlisi de dades de biologia molecular. El projecte bioconductor, que va començar la tardor del 2001, proporciona llibreries de R per a la manipulació i anàlisi de dades de genòmica, com ara microxips d'Affymetrix i cDNA.

Els desenvolupador de Gnumeric han cooperat amb el projecte R per a millorar la precisió de Gnumeric.[10]

Eines per a RModifica

Hi ha diverses interfícies gràfiques per a R, incloent:

Molts editors tenen facilitats per a la programació en R, incloent:

La funcionalitat de R s'ha fet accessible des de Python per la llibreria RPy.[17]

ReferènciesModifica

  1. A Brief History R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, available from the CRAN website
  2. The R FAQ: Why is R named R ?. Darrer accés el 31 de juliol de 2007.
  3. Fox, John; Andersen, Robert «Using the R Statistical Computing Environment to Teach Social Statistics Courses» (PDF). Department of Sociology, McMaster University, gener 2005. Arxivat 2016-06-11 a Wayback Machine.
  4. Jackman, Simon «R For the Political Methodologist» ( PDF). The Political Methodologist. Political Methodology Section, American Political Science Association, 11, 1, Spring 2003, pàg. 20–22. Arxivat de l'original el 2006-07-21 [Consulta: 3 agost 2006]. Arxivat 2006-07-21 a Wayback Machine.
  5. [enllaç sense format] http://www.sciviews.org/benchmark Arxivat 2009-08-08 a Wayback Machine.
  6. R Development Core Team. «Writing R Extensions». [Consulta: 14 juny 2012]. «[...] we recommend the consistent use of the preferred assignment operator ‘<-’ (rather than ‘=’) for assignment.»
  7. «Google's R Style Guide». Arxivat de l'original el 1 de març 2013. [Consulta: 14 juny 2012].
  8. Wickham, Hadley. «Style Guide». [Consulta: 14 juny 2012].
  9. «Assignments with the = Operator». [Consulta: 14 juny 2012].
  10. Gnumeric, Team. «accessdate = 2006-04-30 Gnumeric 1.4 is Here!». The GNOME Project, 19-12-2004.
  11. [enllaç sense format] http://rattle.togaware.com
  12. [enllaç sense format] http://community.jedit.org/?q=node/view/2339
  13. [enllaç sense format] http://www.kate-editor.org/syntax/2.5/r.xml Arxivat 2007-09-27 a Wayback Machine.
  14. [enllaç sense format] http://syn.sourceforge.net/ Arxivat 2007-10-20 a Wayback Machine.
  15. [enllaç sense format] http://sourceforge.net/projects/tinn-r
  16. [enllaç sense format] http://www.walware.de/goto/statet Arxivat 2016-09-26 a Wayback Machine.
  17. [enllaç sense format] http://rpy.sourceforge.net

BibliografiaModifica

Enllaços externsModifica

A Wikimedia Commons hi ha contingut multimèdia relatiu a: R
Vegeu R en el Viccionari, el diccionari lliure.

(part 1, part 2, part 3), per David Mertz i Brad Huntting, introduint l'estil funcional de programació en R i com expressar programes orientats a objectes.