R (llenguatge de programació)

De Viquipèdia
Jump to navigation Jump to search
Infotaula de llenguatge de programacióR
R logo.svg
Tipus paquet GNU, llenguatge de programació multiparadigma, statistical package Tradueix i open science tool Tradueix
Data de creació 1993[1]
Disseny Ross Ihaka i Robert Gentleman
Desenvolupador R Development Core Team
Paradigma de programació Multiparadigma
Darrera versió estable 3.4.4 Març 15, 2018; fa 7 mesos (2018-03-15)
Llenguatge de programació C, Fortran i R
Influenciat per S, Scheme, XLispStat
Sistema operatiu Multiplataforma
Codi font Codi font
Llicència GNU General Public License
Etiqueta d'Stack Exchange Etiqueta
Pàgina web www.r-project.org
Modifica les dades a Wikidata

El 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]

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 programari.[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]

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]

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

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

Llibreries[modifica]

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]

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]

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]

  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. ISBN: {{{isbn}}}.
  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. ISBN: {{{isbn}}} [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, 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
  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]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: R 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.