R (llenguatge de programació)
| Paradigma de programació: | Multiparadigma |
|---|---|
| Aparegut l'any: | 1993[1] |
| Dissenyat per: | Ross Ihaka i Robert Gentleman |
| Desenvolupador: | R Development Core Team |
| Darrera versió estable: | 2.15.2 Octubre 26, 2012 |
| 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 d'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.
Taula de continguts |
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 per a que la resta d'usuaris puguin emprar-les. Cada llibreria sol proporcionar eines per a un cert tipus de funció o àmbit d'estudi. Degut a 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, el 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 del la sintaxi de programació d'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
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:
- Brodgar
- JGR - basat en Java
- pmg - basat en GTK+2
- Rattle[11] - basat en GTK+2
- Rcmdr - basat en tcltk
- RKWard - basat en les llibreries KDE
- SciViews-R - basat en tcltk2
- Statistical Lab (laboratori estadístic)
Molts editors tenen facilitats per a la programació en R, incloent:
- ConTEXT
- Emacs amb el seu paquet Emacs Parla Estadística
- jEdit[12]
- Kate[13]
- Syn[14]
- TextMate
- Tinn-R[15]
- Vim
- Bluefish
- Un afegit pel Eclipse entorn de desenvolupament integrat.[16]
- WinEdt amb la llibreria d'R RWinEdt
La funcionalitat de R s'ha fet accessible des de Python per la llibreria RPy.[17]
Referències [modifica]
- ↑ A Brief History R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, available from the CRAN website
- ↑ The R FAQ: Why is R named R ?. Darrer accés el 31 de juliol de 2007.
- ↑ Fox, John; Andersen, Robert. «Using the R Statistical Computing Environment to Teach Social Statistics Courses» (PDF). Department of Sociology, McMaster University, January 2005.
- ↑ Jackman, Simon. «R For the Political Methodologist» (PDF). The Political Methodologist. Political Methodology Section, American Political Science Association, vol. 11, 1, Spring 2003, p. 20–22 [Consulta: 3 agost 2006].
- ↑ http://www.sciviews.org/benchmark
- ↑ R Development Core Team. «Writing R Extensions». [Consulta: 14 June 2012]. «[...] we recommend the consistent use of the preferred assignment operator ‘<-’ (rather than ‘=’) for assignment.»
- ↑ «Google's R Style Guide». [Consulta: 14 June 2012].
- ↑ Wickham, Hadley. «Style Guide». [Consulta: 14 June 2012].
- ↑ «Assignments with the = Operator». [Consulta: 14 June 2012].
- ↑ Gnumeric, Team. «accessdate = 2006-04-30 Gnumeric 1.4 is Here!». The GNOME Project, 2004-12-19.
- ↑ http://rattle.togaware.com
- ↑ http://community.jedit.org/?q=node/view/2339
- ↑ http://www.kate-editor.org/syntax/2.5/r.xml
- ↑ http://syn.sourceforge.net/
- ↑ http://sourceforge.net/projects/tinn-r
- ↑ http://www.walware.de/goto/statet
- ↑ 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]
- Pàgina principal del projecte R
- RSeek.org - Motor de cerca per a R creat per Sasha Goodman
- Motor de búsqueda per a R (ajuda amb la ambigüetat de R com a terme de búsqueda)
- Tutorial en vídeo de R
- Interfície per a R basada en Internet
- Introducció per Vincent Zoonekynd mostra R en acció.
- El manual de referència d'R - Llibreria Base per l'equip central de desenvolupament de R. ISBN 0-9546120-0-0 (vol. 1), ISBN 0-9546120-1-9 (vol. 2)
- R Wiki Documentació i consells creats pels usuaris.
- Galeria de gràfiques de R o la RGraphExampleLibrary ensenyen exemples de gràfics generats amb R
- Statistical programming with R és una sèrie de tres parts
(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.
- La pàgina de Robert Gentleman
- La pàgina de Ross Ihaka
- La pàgina de John Maindonald
- La pàgina de Julian Faraway
- L'equip central de R
- R & Manual de Bioconductor per Thomas Girke
- Referències curtes per Tom Short
- Projectes GUI per a R - Llistat de paquets GUI, és a dir, amb interfície basada en ratolí i menús desplegables.