# R (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'.
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. 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

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.
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).
El 2024 va sortir la primera versió amb traducció al català la versió 4.4.

## Exemple

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 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 "=".

## Llibreries

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

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.

## Eines per a R

Hi ha diverses interfícies gràfiques per a R, incloent:
* Brodgar
* JGR - basat en Java
* pmg - basat en GTK+2
* Rattle - 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
* Kate
* Syn
* TextMate
* Tinn-R
* Vim
* Bluefish
* Un afegit per l'Eclipse (entorn integrat de desenvolupament).
* WinEdt amb la llibreria de R RWinEdt
* RStudio
* Visual Studio Code

## Referències

* ↑ 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, 01-01-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 (@robertclab@genomic.social)», 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

* 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

* Pàgina principal del projecte R (anglès)
* RSeek.org - Motor de cerca per a R creat per Sasha Goodman (anglès)