R (llenguatge de programació)

De Viquipèdia
Dreceres ràpides: navegació, cerca
R
El logotip d'R.
Paradigma de programació: Multiparadigma
Aparegut l'any: 1993[1]
Dissenyat per: Ross Ihaka i Robert Gentleman
Desenvolupador: R Development Core Team
Darrera versió estable: 3.1.0 Abril 10, 2014; fa 7 mesos (2014-04-10)
Influenciat per: S, Scheme, XLispStat
Sistema operatiu: Multiplataforma
Llicència: GNU General Public License
Pàgina web: www.r-project.org

El llenguatge de programació R, és un llenguatge de programació i un entorn de desenvolupament de software 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]

R és àmpliament emprat per a desenvolupar programes estadístics i per anàlisi de dades, i ha esdevingut l'estàndard en el que estadístics desenvolupen nou software.[3] El codi font de l'R està disponible de forma gratuïta 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ístiques[modifica | modifica el codi]

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 forma gratuïta 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]

Exemple[modifica | modifica el codi]

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

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

Gràfics de diagnòstic produits mitjançant la funció plot.lm()

Llibreries[modifica | modifica el codi]

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.

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

Extensions[modifica | modifica el codi]

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 R[modifica | modifica el codi]

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ències[modifica | modifica el codi]

  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. «Using the R Statistical Computing Environment to Teach Social Statistics Courses» (PDF). Department of Sociology, McMaster University, gener 2005.
  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 [Consulta: 3 agost 2006].
  5. [enllaç sense format] http://www.sciviews.org/benchmark
  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». [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, 2004-12-19.
  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
  14. [enllaç sense format] http://syn.sourceforge.net/
  15. [enllaç sense format] http://sourceforge.net/projects/tinn-r
  16. [enllaç sense format] http://www.walware.de/goto/statet
  17. [enllaç sense format] http://rpy.sourceforge.net
  • Everitt, B. S. and Hothorn, T.. A Handbook of Statistical Analyses Using R. Chapman & Hall/CRC, 2006.  [1]
  • Faraway, J. J.. Linear Models with R. Chapman & Hall/CRC, 2004.  [2]
  • Faraway, J. J.. Extending the Linear Model with R: Generalized Linear, Mixed Effects and Nonparametric Regression Models. Chapman & Hall/CRC, 2005.  [3]
  • Jureckova, J. and Picek, J.. Robust Statistical Methods with R. Chapman & Hall/CRC, 2005.  [4]
  • Maindonald, J. and Braun, W. J.. Data Analysis and Graphics Using R, second edition. Cambridge University Press, 2007.  [5]
  • Murrell, P.. R Graphics. Chapman & Hall/CRC, 2005.  [6]
  • Murtagh, F.. Correspondence Analysis and Data Coding with Java and R. Chapman & Hall/CRC, 2005.  [7]
  • Verzani, J.. Using R for Introductory Statistics. Chapman & Hall/CRC, 2004.  [8]
  • Wood, S. N.. Generalized Additive Models: An Introduction with R. Chapman & Hall/CRC, 2006.  [9]
  • Crawley, M.J. (2002) Statistical Computing. John Wiley, New York.
  • Crawley, M.J. (2005) Statistics: An Introduction Using R. John Wiley, New York.
  • Crawley, M.J. (2007) The R Book. John Wiley, New York.
  • Ihaka, R., and Gentleman, R. (1996) R: A Language for Data Analysis and Graphics, Journal of Computational and Graphical Statistics, Vol. 5, No. 3, pp. 299-314, doi:10.2307/1390807

.

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: R (llenguatge de programació) Modifica l'enllaç a Wikidata

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