R (llenguatge de programació)
![]() | |
![]() | |
Tipus | llenguatge de programació, llenguatge de programació multiparadigma, statistical package (en) ![]() ![]() |
---|---|
Data de creació | 1993[1] |
Disseny | Ross Ihaka i Robert Gentleman |
Desenvolupador | R Development Core Team |
Paradigma de programació | Multiparadigma |
Darrera versió estable | 3.6.0 Abril 26, 2019 |
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 |
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 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í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 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]
El 2024 va sortir la primera versió amb traducció al català la versió 4.4.[6]
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[7][8][9] 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 "=".[10]
> 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.
Les llibreries solen desenvolupar-se emprant R, i altres llengüatges de programació com LaTeX, Java, Julia, rust i sovint C, C++ i Fortran. Per defecte, a l'instal·lar R venen inclosos unes quants paquets bàsics, però n'hi ha més de 20.000 disponibles als repositoris oficials. Hi ha 2 repositoris oficials CRAN i Bioconductor. Les llibreries més notables de CRAN es llisten, juntament amb comentaris, al web oficial R Task View Arxivat 2007-06-25 a Wayback Machine.
Bioconductor es un esforç de la comunitat de bioinformàtica per a emprar R per l'anàlisi de dades de biologia molecular. 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, dades de seqüenciació.
Extensions
[modifica]També disposa del paquet Sweave, el qual integra els càlculs estadístics i la creació de documents científics, i que permet generar articles de forma automatitzada.
L'OpenMx és una llibreria especialitzada en modelització d'equacions estructurals que aprofita i expandeix les capacitats el llenguatge R.
La funcionalitat de R s'ha fet accessible des de Python per la llibreria RPy.[11]
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[12] - 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[13]
- Kate[14]
- Syn[15]
- TextMate
- Tinn-R[16]
- Vim
- Bluefish
- Un afegit per l'Eclipse (entorn integrat de desenvolupament).[17]
- WinEdt amb la llibreria de R RWinEdt
- RStudio
- Visual Studio Code
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, gener 2005. Arxivat de l'original el 2016-06-11 [Consulta: 7 octubre 2007].
- ↑ 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.
- ↑ http://www.sciviews.org/benchmark Arxivat 2009-08-08 a Wayback Machine.
- ↑ «Robert Castelo (@[email protected])», 24-04-2024. [Consulta: 27 abril 2024].
- ↑ 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.»
- ↑ «Google's R Style Guide». Arxivat de l'original el 1 de març 2013. [Consulta: 14 juny 2012].
- ↑ Wickham, Hadley. «Style Guide». [Consulta: 14 juny 2012].
- ↑ «Assignments with the = Operator». [Consulta: 14 juny 2012].
- ↑ http://rpy.sourceforge.net
- ↑ http://rattle.togaware.com
- ↑ http://community.jedit.org/?q=node/view/2339
- ↑ http://www.kate-editor.org/syntax/2.5/r.xml Arxivat 2007-09-27 a Wayback Machine.
- ↑ http://syn.sourceforge.net/ Arxivat 2007-10-20 a Wayback Machine.
- ↑ http://sourceforge.net/projects/tinn-r
- ↑ http://www.walware.de/goto/statet Arxivat 2016-09-26 a Wayback Machine.
Bibliografia
[modifica]- Dalgaard, Peter. Introductory Statistics with R (Statistics and Computing). Nova York: Springer. ISBN 0-387-79053-5.
- Everitt, B. S. and Hothorn, T.. A Handbook of Statistical Analyses Using R. Chapman & Hall/CRC, 2006. ISBN 1-4200-7933-6. Arxivat 2007-10-12 a Wayback Machine.
- Faraway, J. J.. Linear Models with R. Chapman & Hall/CRC, 2004. Arxivat 2007-10-04 a Wayback Machine.
- Faraway, J. J.. Extending the Linear Model with R: Generalized Linear, Mixed Effects and Nonparametric Regression Models. Chapman & Hall/CRC, 2005. Arxivat 2007-11-09 a Wayback Machine.
- Jureckova, J. and Picek, J.. Robust Statistical Methods with R. Chapman & Hall/CRC, 2005. Arxivat 2007-11-09 a Wayback Machine.
- Maindonald, J. and Braun, W. J.. Data Analysis and Graphics Using R, second edition. Cambridge University Press, 2007.
- Murrell, P.. R Graphics. Chapman & Hall/CRC, 2005. Arxivat 2007-11-09 a Wayback Machine.
- Murtagh, F.. Correspondence Analysis and Data Coding with Java and R. Chapman & Hall/CRC, 2005. Arxivat 2007-11-09 a Wayback Machine.
- Verzani, J.. Using R for Introductory Statistics. Chapman & Hall/CRC, 2004. Arxivat 2007-11-09 a Wayback Machine.
- Wood, S. N.. Generalized Additive Models: An Introduction with R. Chapman & Hall/CRC, 2006. Arxivat 2007-11-09 a Wayback Machine.
- 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.
- Viechtbauer, W. «Conducting meta-analyses in R with the metafor package». Journal of Statistical Software, 36, 3, 2010, pàg. 1-48.
Enllaços externs
[modifica]- Pàgina principal del projecte R (anglès)
- RSeek.org - Motor de cerca per a R creat per Sasha Goodman (anglès)