fbpx
Wikipedia

R (lenguaje de programación)

R es un entorno y lenguaje de programación con un enfoque al análisis estadístico.

R
Desarrollador(es)
R Development Core Team
https://www.r-project.org
Información general
Extensiones comunes .R, .rda, .Rdata
Paradigma

Multiparadigma:

funcional, vectorial, imperativo, procedural, orientado a objetos
Apareció en 1993
Diseñado por Ross Ihaka y Robert Gentleman
Última versión estable 4.2.1 (23 de junio de 2022 (7 meses y 6 días))
Influido por S, Scheme, XLispStat
Ha influido a Gretl (software) Julia (lenguaje)
Sistema operativo Multiplataforma
Licencia GPL

R nació como una reimplementación de software libre del lenguaje S, adicionado con soporte para ámbito estático. Se trata de uno de los lenguajes de programación más utilizados en investigación científica, siendo además muy popular en los campos de aprendizaje automático (machine learning), minería de datos, investigación biomédica, bioinformática y matemáticas financieras. A esto contribuye la posibilidad de cargar diferentes bibliotecas o paquetes con funcionalidades de cálculo y graficación.

R es parte del sistema GNU y se distribuye bajo la licencia GNU GPL. Está disponible para los sistemas operativos Windows, Macintosh, Unix y GNU/Linux.

Historia

Fue desarrollado inicialmente por Robert Gentleman y Ross Ihaka del Departamento de Estadística de la Universidad de Auckland en 1993.[1]​ Sin embargo, si se remonta a sus bases iniciales, puede decirse que se inició en los Bell Laboratories de AT&T y ahora Alcatel-Lucent en Nueva Jersey con el lenguaje S. Este último, un sistema para el análisis de datos desarrollado por John Chambers, Rick Becker, y colaboradores diferentes desde finales de 1970. La historia desde este punto es prácticamente la del lenguaje S. Los diseñadores iniciales, Gentleman e Ihaka, combinaron las fortalezas de dos lenguajes existentes, S y Scheme. En sus propias palabras: "El lenguaje resultante es muy similar en apariencia a S, pero en el uso de fondo y la semántica es derivado desde Scheme". El resultado se llamó R "en parte al reconocimiento de la influencia de S y en parte para hacer gala de sus propios logros".[2]

Su desarrollo actual es responsabilidad del R Development Core Team. Para saber más al respecto y en el entorno del programa, puede teclearse contributors(); el la lista desplegada aparecen los nombres de los autores iniciales y los actuales pertenecientes al R Development Core Team (Equipo Central de Desarrolladores R).

A continuación se enumeran algunos hitos en el desarrollo de R:[3]

  • Versión 0.16: Es la última versión alfa desarrollada esencialmente por Ihaka y Gentleman, que incluye gran parte de las características descritas en el "White Book".
  • La lista de correo comenzó su andadura el 1 de abril de 1997.
  • Versión 0.49 (23 de abril de 1997): Es la versión más antigua de la que se conserva el código (que todavía compila en algunas plataformas UNIX). En esta fecha arrancó también CRAN con tres espejos que albergaban 12 paquetes. Poco después aparecieron las versiones alfa para Windows y Mac OS.
  • Versión 0.60 (5 de diciembre de 1997): R se integra oficialmente en el Proyecto GNU. El código se versiona a través de CVS.
 
R efectuando múltiples tareas en Windows, versión 3.2.2.
  • Versión 1.0.0 (29 de febrero de 2000): Los desarrolladores lo consideran suficientemente estable para su uso en producción.[4]
  • Versión 1.4.0: Se introducen los métodos S4 y aparece la primera versión para Mac OS X.
  • Versión 2.0.0 (4 de octubre de 2004): Introduce el lazy loading, que permite una carga rápida de datos con un coste de memoria mínimo.
  • Versión 2.9.0: El paquete 'Matrix' se incluye en la distribución básica de R.
  • Versión 2.11.0 (22 de abril de 2010): Soporte para sistemas Windows de 64 bits.
  • Versión 2.13.0 (14 de abril de 2011): Añadida una nueva función al compilador que permite acelerar las funciones convirtiéndolas a byte-code.
  • Versión 2.14.0 (31 de octubre de 2011): Añadidos espacios de nombres obligatorios para los paquetes. Añadido un nuevo paquete de paralelización.
  • Versión 2.15.0 (30 de marzo de 2012): Nuevas funciones de balanceo de cargas. Mejorada la velocidad de serialización para grandes vectores.
  • Versión 3.0.0 (3 de abril de 2013): Mejoras en GUI, funciones gráficas, gestión de memoria, rendimiento e internacionalización.
  • Versión 3.4.0 (21 de abril de 2017): El compilador de código de bytes JIT ('Just In Time') ahora está habilitado en el nivel 3 de forma predeterminada.

Características

R proporciona un amplio abanico de herramientas estadísticas (modelos lineales y no lineales, tests estadísticos, análisis de series temporales, algoritmos de clasificación y agrupamiento, etc.) y gráficas.

Al igual que S, se trata de un lenguaje de programación, lo que permite que los usuarios lo extiendan definiendo sus propias funciones. De hecho, gran parte de las funciones de R están escritas en el mismo R, aunque para algoritmos computacionalmente exigentes es posible desarrollar bibliotecas en C, C++ o Fortran que se cargan dinámicamente. Los usuarios más avanzados pueden también manipular los objetos de R directamente desde código desarrollado en C. R también puede extenderse a través de paquetes desarrollados por su comunidad de usuarios.

R hereda de S su orientación a objetos. La tarea de extender R se ve facilitada por su permisiva política de lexical scoping.[5]

Además, R puede integrarse con distintas bases de datos y existen bibliotecas que facilitan su utilización desde lenguajes de programación interpretados como Perl y Python.

Otra de las características de R es su capacidad gráfica, que permite generar gráficos con alta calidad. R posee su propio formato para la documentación basado en LaTeX.

 
Regresión y su análisis somero en R versión 3.2.2 y en el sistema operativo Windows

R también puede usarse como herramienta de cálculo numérico, campo en el que puede ser tan eficaz como otras herramientas específicas tales como GNU Octave y su equivalente privativo: MATLAB.[6]​ Se ha desarrollado una interfaz, RWeka[7]​ para interactuar con Weka que permite leer y escribir ficheros en el formato arff y enriquecer R con los algoritmos de minería de datos de dicha plataforma.

Extensiones y paquetes

R forma parte de un proyecto colaborativo y abierto. Sus usuarios pueden publicar paquetes que extienden su configuración básica. Existe un cuyo número superó en otoño de 2009 la cifra de los 2000.

Dado el enorme número de nuevos paquetes, estos se han organizado en , que permiten agruparlos según su naturaleza y función. Por ejemplo, hay grupos de paquetes relacionados con estadística bayesiana, econometría, series temporales, etc.

Para facilitar el desarrollo de nuevos paquetes, se ha puesto a servicio de la comunidad una forja de desarrollo que facilita las tareas relativas a dicho proceso.

Otros sistemas de software comerciales que integran con R incluyen: JMP,[8]Mathematica,[9]MATLAB,[10]​ Spotfire,[11]SPSS,[12]Statistica,[13]​ Platform Symphony,[14]SAS,[15]Tableau Software,[16]Esri ArcGis,[17]​ Dundas,[18]​ Statgraphics.[19]​ y SQL Server 2017.[20]

Ejemplos mínimos

Algunos ejemplos mínimos para ver la forma en que se puede introducir el código.

Ejemplo 1: Instalación y activación de paquetes

Para cargar los paquetes que se requieren se debe de seleccionar el espejo (mirror), descargar la paquetería y luego activarla. Para seleccionar el espejo:

> chooseCRANmirror(graphics=FALSE) HTTPS CRAN mirror 1: 0-Cloud [https] 2: Algeria [https] 3: Australia (Melbourne) [https] 4: Australia (Perth) [https] 5: Austria [https] 6: Belgium (Ghent) [https] 7: Brazil (SP 1) [https] 8: Bulgaria [https] 9: Canada (MB) [https] 10: Chile [https] 11: China (Beijing 4) [https] 12: Colombia (Cali) [https] 13: Czech Republic [https] 14: Denmark [https] 15: France (Lyon 1) [https] 16: France (Lyon 2) [https] 17: France (Marseille) [https] 18: France (Paris 2) [https] 19: Germany (Falkenstein) [https] 20: Germany (Münster) [https] 21: Iceland [https] 22: Ireland [https] 23: Italy (Padua) [https] 24: Japan (Tokyo) [https] 25: Malaysia [https] 26: Mexico (Mexico City) [https] 27: New Zealand [https] 28: Norway [https] 29: Philippines [https] 30: Russia (Moscow) [https] 31: Serbia [https] 32: Spain (A Coruña) [https] 33: Spain (Madrid) [https] 34: Switzerland [https] 35: Taiwan (Chungli) [https] 36: Turkey (Denizli) [https] 37: UK (Bristol) [https] 38: UK (Cambridge) [https] 39: UK (London 1) [https] 40: USA (CA 1) [https] 41: USA (IA) [https] 42: USA (KS) [https] 43: USA (MI 1) [https] 44: USA (TN) [https] 45: USA (TX) [https] 46: USA (WA) [https] 47: (HTTP mirrors) Selection: 

Al escribir solo chooseCRANmirror() se desplegará una ventana para elegirlo manualmente con el ratón. Lo mismo ocurrirá si se omite graphics = FALSE o se escribe graphics = TRUE.

Cuando se instalan paquetes para análisis especializados, específicos o que simplemente no tiene predeterminadamente instalados pero no activados el sistema, se instala. Así pues, en este caso, los paquetes, al ser un entorno con dependencias funcionan mejor con tales paquetes auxiliares. Las dependencias pueden ser por ejemplo otros paquetes o bases de datos para que funcione o bien, o mejor o de hecho lo haga. Algunos paquetes funcionan con dependencias muy específicas, otros con dependencias muy generales; como sea, a veces la misma instalación, al ser común la dependencia, lo hace de forma automática, pero no en todas las ocasiones. Por esto para instalar el paquete de interés se escribirá:

install.packages("deldir", dep=T) # Para la triangulación de Delaunay y teselación de Dirichlet junto con todas las dependencias 

Para activar la librería pueden ser:

library("deldir") # Para el ejemplo anterior. library('Benchmarking') # Para el [[Análisis de Datos Envolvente]] require(maps) # Para elaborar mapas. Previa instalación. require('plot3D') # Para elaborar mapas 3D. Previa instalación. 

Todos tanto con comillas dobles (" ") como con comillas simples (' ') o libres. Si se instalaron las arriba mencionadas dependencias, aparecerán indicaciones luego del comando que describe las dependencias que también se activaron al llamar la librería que se usará.

Ejemplo 2: Elaboración de mapas

Para elaborar un mapa de Estados Unidos que sea sobre la tasa de desempleo de 2009 por condados (municipios) y que estos estén marcados por densidad de color se usará lo que a continuación se presenta. Basado en la solución J del "Choropleth Challenge". Se puede obtener este ejemplo (en inglés y con los colores originales) en example(map)

Para el ejemplo en español:

require(maps) # activación de librería require(mapproj) # se usará para projection="polyconic" # Cargar los datos # unemp incluye datos para condados de los Estados Unidos continentales. Se excluyen Alaska, Hawaii, Puerto Rico, y pequeñas ciudades de Virginia data(unemp) # Datos de desempleo data(county.fips) # mapa de los condados # Se define la paleta de colores. Escala de grises en este caso. En el original, rosas y magenta. colors = c("#F1EEF6", "#D3D3D3", "#B9B9B9", "#787878", "#2E2E2E", "#111111") # Colores unemp$colorBuckets <- as.numeric(cut(unemp$unemp, c(0, 2, 4, 6, 8, 10, 100))) # Rangos de desempleo leg.txt <- c("<2%", "2-4%", "4-6%", "6-8%", "8-10%", ">10%") # Etiquetas de los rangos # Se alinean los datos con definiciones de mapa (parciales) de emparejamientos de estados,  # nombre de condados, que incluyen varios polígonos para algunos condados cnty.fips <- county.fips$fips[match(map("county", plot=FALSE)$names, county.fips$polyname)] colorsmatched <- unemp$colorBuckets [match(cnty.fips, unemp$fips)] # Se dibuja el mapa. Luego se guarda en JPEG. jpeg("desempleo Estados Unidos 2009.jpg", width = 1024, height=750) # Crea imagen de 1024 x 750 pixeles. map("county", col = colors[colorsmatched], fill = TRUE, resolution = 0, lty = 0, projection = "polyconic") # Mapa general del desempleo en grises map("state", col = "white", fill = FALSE, add = TRUE, lty = 1, lwd = 0.2, projection="polyconic") # Mapa de los estados sobre puesto title(main="Desempleo por condado, año 2009", cex.main = 3, sub="Creado con información de la solución de J del 'Choropleth Challenge'   más info en http://blog.revolutionanalytics.com/2009/11/choropleth-challenge-result.html") # Se creó el título del mapa legend("top", leg.txt, horiz = T, fill = colors, bg="#F1F1F1", cex=1.5) # Indicación de los colores por su rango map.axes() # Para colocar ejes con la latitud y longitud dev.off() # Para ver los límites del condado débiles, vaya a RGui : File/SaveAs/PDF 

Lo anterior da como resultado el mapa de la imagen inferior.

 

Ejemplo 3: Estimación de salarios de manera semilogaritmica

El siguiente ejemplo es tomado del libro de Kleiber y Zeileis intitulado Applied Econometrics with R. El ejemplo que abajo se expondrá no es tomado al pie de la letra, se le agregaron algunos cambios por el tipo de licencia; no obstante, el fin es el mismo. Se agregan muchas cosas para hacer más didáctico el código y permitir exponer la flexibilidad del paquete estadístico R.

library(AER) # Para el compendio de datos del libro de Kleiber & Zeileis (2008) library(scales) # Para las transparencias de los elementos de color. library(quantreg) # Para usar las regresiones por cuantiles data("CPS1985", package = "AER") # Carga los datos del paquete AER cps <- CPS1985 # Renombra la variable como cps cps_lm <- lm(log(wage) ~ experience + I(experience^2) + education, data = cps) # Hace la regresión simple cps_rq <- rq(log(wage) ~ experience + I(experience^2) + education, data = cps, tau = seq(0.2, 0.8, by = 0.15)) # Regresión por cuantiles cps2 <- data.frame(education = mean(cps$education), experience = min(cps$experience):max(cps$experience)) # Crea un "data frame" con los datos pertinentes cps2 <- cbind(cps2, predict(cps_lm, newdata = cps2, interval = "prediction")) # Se agregan los valores requeridos al "data frame" anterior cps2 <- cbind(cps2, predict(cps_rq, newdata = cps2, type = "")) # Se agregan los valores "tau" a cps2. Los valores de los cuantiles jpeg("salarios.jpeg", width = 924 , height=924) # Crea una imagen en el directorio actual con 924x924 px de cada lado # Se hace la gráfica con: plot(log(wage) ~ experience, data = cps, # Crea el mapeo principal de datos en el gráfico pch=20, col="#234DEA", cex=2, # Se crean los puntos azules rellenos axes=F, # se eliminan los ejes ylab= "", xlab= "") # Se eliminan los nombres de los ejes box(lty=2, col="#424242", lwd=2) # Agregada una caja gris punteada # Sigue agregar el eje de las abscisas (de las x) y el de las ordenadas axis(1, col="#610B21", lwd=3, col.axis="#610B21", cex=2) axis(2, col="#610B21", lwd=3, col.axis="#610B21", las=2) # Se agregan las leyendas a los ejes mtext("Experiencia", side=1, cex=1.7, col="#610B21", line=2) mtext("Logaritmo del salario", side=2, cex=1.7, col="#610B21", line=2) for(i in 6:10) lines(cps2[,i] ~ experience, data = cps2, # hace el mapeo de las líneas predeterminadas col=alpha("#FFFF00", .75), lwd=5) #líneas amarillas gruesas con un 75% de transperencia title("Estimación de los salarios en forma semi-logarítmica", cex.main=2.7, col.main="#2E2E2E", sub="Con base en el libro de Kleiber & Zeileis (2008) y con datos de Brendt (1991)", col.sub="#FF0000", font.sub=4, cex.sub=1.3) # Se crearon el título y subtítulo con los colores y tipo de texto correspondientes dev.off() # Se cierra el archivo de imégen, JPEG en este caso 

Acá abajo aparece la imagen que se generó con el código de arriba. Además, cualquier error que en la imagen venga no es culpa de los autores del libro citado. Los propietarios de los derechos de autor son totalmente los autores del libro.

 

Proyectos relacionados

  • Bioconductor, un conjunto de paquetes para el análisis de datos en genómica.
  • Rmetrics, orientado al análisis de los mercados financieros y la valoración de instrumentos de inversión.

Herramientas de productividad

Existen diversas interfaces que facilitan el trabajo con R.

Interfaces gráficas

Editores e IDEs

Entre los editores de texto e IDEs con soporte para R se cuentan: Bluefish,[22]​ Crimson Editor, ConTEXT, Eclipse,[23]Emacs (Emacs Speaks Statistics), Geany, jEdit,[24]​ Kate,[25]RStudio,[26]RKWard,[27]​ Syn, TextMate, Tinn-R, Vim, gedit, SciTE, WinEdt (R Package RWinEdt), notepad++ y Visual Studio.[28]

Sweave es un procesador de documentos que puede ejecutar código de R incrustado en código de LaTeX y para insertar código, resultados y gráficos en el documento escrito en LaTeX. LyX puede usarse para crear y compilar documentos desarrollados en Sweave. El paquete odfWeave es similar, generando documentos en el formato OpenDocument (ODF); extensiones en estado experimental también permiten generar documentos del tipo presentación u hoja de cálculo.

Lenguajes de script

La funcionalidad de R puede ser invocada desde código desarrollado en otros lenguajes de script tales como Python (mediante RPy[29]​), Perl (mediante Statistics::R[30]​), Ruby[31]​ y F#.[32]​ También pueden desarrollarse scripts en R directamente usando littler[33]​ o Rscript, que forma parte de la distribución básica de R desde la versión 2.5.0.

Alternativas

Libres

Otras alternativas a R son las que abajo se presentan. Cabe recordar que pueden tener cierto sesgo a especializarse en algún tema específico, como R lo hace con la biología, fisiología o similares, por ejemplo con el proyecto Bioconductor. En el caso de estos sesgos positivos puede mencionarse a GNU Octave, que es más matemático, o Gretl que se centra más a series de tiempo (usadas en econometría).

No obstante los sesgos temáticos, hay amplísimos grupos que usan todas las alternativas para usos eclécticos. Econometría, biología, edafología, topología, estadística pueden ser algunas de las ramas que cada vez están usando más las alternativas libres de software o lenguajes de programación (como R) para su aplicación teórica o práctica.

Además, los paquetes se desarrollan para R conforme las investigaciones o publicaciones, como el caso del ejemplo 3 líneas arriba. Otro ejemplo es el paquete de Benchmarking de R elaborado por Peter Bogetoft y Lars Otto, ambos investigadores y especialistas del tema. Es decir, los productores de estos paquetes con, casi siempre, especialistas e investigadores que desean compartir los conocimientos aplicados a la comunidad de usuarios.

La naturaleza de los paquetes libres permiten que se testeen rápido y sean sinérgicas las opiniones para un avance pronto. Entonces, existen ámbitos positivos en este caso también tanto como en las siguientes alternativas, las privativas.

Privativas

No obstante las poderosas alternativas libres mencionadas arriba, existen opciones que son privadas o empresariales. En este caso, pueden presentarse lenguajes de programación con comunidades que comparten códigos. En este caso, Stata es un fuerte ejemplo. Es decir, un especialista puede desarrollar un paquete especial para ese programa y luego compartirlo usualmente con la empresa autora; entonces, la empresa puede distribuirla primero a manera de prueba y luego de forma gratuita (o con montos monetarios especiales) y con el respaldo de la calidad avalada.

Existen puntos a favor de que las empresas distribuyan con cierto aval los códigos o paqueterías: se asegura del óptimo funcionamiento de las mismas, se evitan los bugs que eventualmente pueden ser comunes en ciertos códigos de las alternativas libres y otras más.

Referencias

  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. Kleiber, Christian; Zeileis, Achim (2008). Applied Econometrics with R (1ra edición). Springer Science+Business Media. p. 15. ISBN 978-0-387-77316-2. 
  3. What's new in R? What's new in R?
  4. Peter Dalgaard. «R-1.0.0 is released». Consultado el 6 de junio de 2009. 
  5. Jackman, Simon (Spring 2003). (PDF). The Political Methodologist (Political Methodology Section, American Political Science Association) 11 (1): 20-22. Archivado desde el original el 21 de julio de 2006. Consultado el 3 de agosto de 2006. 
  6. . SciView. Archivado desde el original el 16 de octubre de 2007. Consultado el 3 de noviembre de 2007. 
  7. «RWeka: An R Interface to Weka. R package version 0.3-17». Kurt Hornik, Achim Zeileis, Torsten Hothorn and Christian Buchta. Consultado el 2009. 
  8. JMP (2013). «Analytical Application Development with JMP». SAS Institute Inc. Consultado el 19 de septiembre de 2013. 
  9. «New in Mathematica 9: Built-in Integration with R». Wolfram. 2013. Consultado el 18 de septiembre de 2013. 
  10. Henson, Robert (23 de julio de 2013). «MATLAB R Link». The MathWorks, Inc. Consultado el 18 de septiembre de 2013. 
  11. Gibson, Brendan (8 de marzo de 2010). . Spotfire. Archivado desde el original el 19 de marzo de 2012. Consultado el 19 de septiembre de 2013. 
  12. Clark, Mike (octubre de 2007). «Introduction to SPSS 16». University of North Texas Research and Statistical Support. Consultado el 19 de septiembre de 2013. 
  13. StatSoft (n.d.). . StatSoft Inc. Archivado desde el original el 12 de junio de 2013. Consultado el 20 de septiembre de 2013. 
  14. Parmar, Onkar (31 de marzo de 2011). «"R" integrated with Symphony». Platform Computing Corporation. Consultado el 20 de septiembre de 2013. 
  15. SAS (11 de noviembre de 2010). «Calling Functions in the R Language (SAS/IML)». Consultado el 20 de septiembre de 2013. 
  16. Tableau (17 de diciembre de 2013). «R is Here!». Consultado el 29 de enero de 2015. 
  17. «Building a Bridge to the R Community». Esri. 20 de julio de 2015. Consultado el 14 de abril de 2016. 
  18. Dundas. «R Integrated with Dundas BI». Consultado el 30 de julio de 2015. 
  19. «Statgraphics R Interface». 
  20. «Editions and supported features of SQL Server 2017». 15 de marzo de 2018. 
  21. «Cantor - Description». The KDE Education Project. Consultado el 4 de noviembre de 2012. 
  22. Customizable syntax highlighting based on Perl Compatible regular expressions, with subpattern support and default patterns for..R, tenth bullet point, Bluefish Features, Bluefish website, retrieved 9 July 2008.
  23. Stephan Wahlbrink. «StatET: Eclipse based IDE for R». Consultado el 26 de septiembre de 2009. 
  24. Jose Claudio Faria. «R syntax». Consultado el 3 de noviembre de 2007. 
  25. . Kate Development Team. Archivado desde el original el 7 de julio de 2008. Consultado el 9 de julio de 2008. 
  26. «Integrated Development Environment (IDE) for R». RStudio, Inc. Consultado el 16 de marzo de 2012. 
  27. «Página proyecto RKWard». 
  28. NppToR: R in Notepad++
  29. RPy home page
  30. Statistics::R page on CPAN
  31. RSRuby GitHub project
  32. F# R Type Provider
  33. littler web site

Enlaces externos

Documentación en español

  • R para Principiantes, la versión en español de R for Beginners, traducido por Jorge A. Ahumada (PDF).
  • Versión en español de An Introduction to R por Andrés González y Silvia González (PDF).
  • Estadística Básica con R y R-Commander (libro libre)
  • Gráficos Estadísticos con R por Juan Carlos Correa y Nelfi González (PDF).
  • Cartas sobre Estadística de la Revista Argentina de Bioingeniería por Marcelo R. Risk (PDF).
  • Introducción al uso y programación del sistema estadístico R por Ramón Díaz-Uriarte, transparencias preparadas para un curso de 16 horas sobre R, dirigido principalmente a biólogos y especialistas en bioinformática (PDF).
  • Lista de correo R-help-es en español Lista de correo oficial de R en español.


  •   Datos: Q206904
  •   Multimedia: GNU R / Q206904
  •   Libros y manuales: Análisis estadístico y econométrico usando GNU R

lenguaje, programación, entorno, lenguaje, programación, enfoque, análisis, estadístico, rdesarrollador, development, core, teamhttps, project, orginformación, generalextensiones, comunes, rdataparadigmamultiparadigma, funcional, vectorial, imperativo, procedu. R es un entorno y lenguaje de programacion con un enfoque al analisis estadistico RDesarrollador es R Development Core Teamhttps www r project orgInformacion generalExtensiones comunes R rda RdataParadigmaMultiparadigma funcional vectorial imperativo procedural orientado a objetosAparecio en1993Disenado porRoss Ihaka y Robert GentlemanUltima version estable4 2 1 23 de junio de 2022 7 meses y 6 dias Influido porS Scheme XLispStatHa influido aGretl software Julia lenguaje Sistema operativoMultiplataformaLicenciaGPL editar datos en Wikidata R nacio como una reimplementacion de software libre del lenguaje S adicionado con soporte para ambito estatico Se trata de uno de los lenguajes de programacion mas utilizados en investigacion cientifica siendo ademas muy popular en los campos de aprendizaje automatico machine learning mineria de datos investigacion biomedica bioinformatica y matematicas financieras A esto contribuye la posibilidad de cargar diferentes bibliotecas o paquetes con funcionalidades de calculo y graficacion R es parte del sistema GNU y se distribuye bajo la licencia GNU GPL Esta disponible para los sistemas operativos Windows Macintosh Unix y GNU Linux Indice 1 Historia 2 Caracteristicas 3 Extensiones y paquetes 4 Ejemplos minimos 4 1 Ejemplo 1 Instalacion y activacion de paquetes 4 2 Ejemplo 2 Elaboracion de mapas 4 3 Ejemplo 3 Estimacion de salarios de manera semilogaritmica 5 Proyectos relacionados 6 Herramientas de productividad 6 1 Interfaces graficas 6 2 Editores e IDEs 6 3 Lenguajes de script 7 Alternativas 7 1 Libres 7 2 Privativas 8 Referencias 9 Enlaces externos 9 1 Documentacion en espanolHistoria EditarFue desarrollado inicialmente por Robert Gentleman y Ross Ihaka del Departamento de Estadistica de la Universidad de Auckland en 1993 1 Sin embargo si se remonta a sus bases iniciales puede decirse que se inicio en los Bell Laboratories de AT amp T y ahora Alcatel Lucent en Nueva Jersey con el lenguaje S Este ultimo un sistema para el analisis de datos desarrollado por John Chambers Rick Becker y colaboradores diferentes desde finales de 1970 La historia desde este punto es practicamente la del lenguaje S Los disenadores iniciales Gentleman e Ihaka combinaron las fortalezas de dos lenguajes existentes S y Scheme En sus propias palabras El lenguaje resultante es muy similar en apariencia a S pero en el uso de fondo y la semantica es derivado desde Scheme El resultado se llamo R en parte al reconocimiento de la influencia de S y en parte para hacer gala de sus propios logros 2 Su desarrollo actual es responsabilidad del R Development Core Team Para saber mas al respecto y en el entorno del programa puede teclearse contributors el la lista desplegada aparecen los nombres de los autores iniciales y los actuales pertenecientes al R Development Core Team Equipo Central de Desarrolladores R A continuacion se enumeran algunos hitos en el desarrollo de R 3 Version 0 16 Es la ultima version alfa desarrollada esencialmente por Ihaka y Gentleman que incluye gran parte de las caracteristicas descritas en el White Book La lista de correo comenzo su andadura el 1 de abril de 1997 Version 0 49 23 de abril de 1997 Es la version mas antigua de la que se conserva el codigo que todavia compila en algunas plataformas UNIX En esta fecha arranco tambien CRAN con tres espejos que albergaban 12 paquetes Poco despues aparecieron las versiones alfa para Windows y Mac OS Version 0 60 5 de diciembre de 1997 R se integra oficialmente en el Proyecto GNU El codigo se versiona a traves de CVS R efectuando multiples tareas en Windows version 3 2 2 Version 1 0 0 29 de febrero de 2000 Los desarrolladores lo consideran suficientemente estable para su uso en produccion 4 Version 1 4 0 Se introducen los metodos S4 y aparece la primera version para Mac OS X Version 2 0 0 4 de octubre de 2004 Introduce el lazy loading que permite una carga rapida de datos con un coste de memoria minimo Version 2 1 0 Aparece el soporte para UTF 8 y comienzan los esfuerzos de internacionalizacion para distintos idiomas Version 2 9 0 El paquete Matrix se incluye en la distribucion basica de R Version 2 11 0 22 de abril de 2010 Soporte para sistemas Windows de 64 bits Version 2 13 0 14 de abril de 2011 Anadida una nueva funcion al compilador que permite acelerar las funciones convirtiendolas a byte code Version 2 14 0 31 de octubre de 2011 Anadidos espacios de nombres obligatorios para los paquetes Anadido un nuevo paquete de paralelizacion Version 2 15 0 30 de marzo de 2012 Nuevas funciones de balanceo de cargas Mejorada la velocidad de serializacion para grandes vectores Version 3 0 0 3 de abril de 2013 Mejoras en GUI funciones graficas gestion de memoria rendimiento e internacionalizacion Version 3 4 0 21 de abril de 2017 El compilador de codigo de bytes JIT Just In Time ahora esta habilitado en el nivel 3 de forma predeterminada Caracteristicas EditarR proporciona un amplio abanico de herramientas estadisticas modelos lineales y no lineales tests estadisticos analisis de series temporales algoritmos de clasificacion y agrupamiento etc y graficas Al igual que S se trata de un lenguaje de programacion lo que permite que los usuarios lo extiendan definiendo sus propias funciones De hecho gran parte de las funciones de R estan escritas en el mismo R aunque para algoritmos computacionalmente exigentes es posible desarrollar bibliotecas en C C o Fortran que se cargan dinamicamente Los usuarios mas avanzados pueden tambien manipular los objetos de R directamente desde codigo desarrollado en C R tambien puede extenderse a traves de paquetes desarrollados por su comunidad de usuarios R hereda de S su orientacion a objetos La tarea de extender R se ve facilitada por su permisiva politica de lexical scoping 5 Ademas R puede integrarse con distintas bases de datos y existen bibliotecas que facilitan su utilizacion desde lenguajes de programacion interpretados como Perl y Python Otra de las caracteristicas de R es su capacidad grafica que permite generar graficos con alta calidad R posee su propio formato para la documentacion basado en LaTeX Regresion y su analisis somero en R version 3 2 2 y en el sistema operativo Windows R tambien puede usarse como herramienta de calculo numerico campo en el que puede ser tan eficaz como otras herramientas especificas tales como GNU Octave y su equivalente privativo MATLAB 6 Se ha desarrollado una interfaz RWeka 7 para interactuar con Weka que permite leer y escribir ficheros en el formato arff y enriquecer R con los algoritmos de mineria de datos de dicha plataforma Extensiones y paquetes EditarR forma parte de un proyecto colaborativo y abierto Sus usuarios pueden publicar paquetes que extienden su configuracion basica Existe un repositorio oficial de paquetes cuyo numero supero en otono de 2009 la cifra de los 2000 Dado el enorme numero de nuevos paquetes estos se han organizado en vistas o temas que permiten agruparlos segun su naturaleza y funcion Por ejemplo hay grupos de paquetes relacionados con estadistica bayesiana econometria series temporales etc Para facilitar el desarrollo de nuevos paquetes se ha puesto a servicio de la comunidad una forja de desarrollo que facilita las tareas relativas a dicho proceso Otros sistemas de software comerciales que integran con R incluyen JMP 8 Mathematica 9 MATLAB 10 Spotfire 11 SPSS 12 Statistica 13 Platform Symphony 14 SAS 15 Tableau Software 16 Esri ArcGis 17 Dundas 18 Statgraphics 19 y SQL Server 2017 20 Ejemplos minimos EditarAlgunos ejemplos minimos para ver la forma en que se puede introducir el codigo Ejemplo 1 Instalacion y activacion de paquetes Editar Para cargar los paquetes que se requieren se debe de seleccionar el espejo mirror descargar la paqueteria y luego activarla Para seleccionar el espejo gt chooseCRANmirror graphics FALSE HTTPS CRAN mirror 1 0 Cloud https 2 Algeria https 3 Australia Melbourne https 4 Australia Perth https 5 Austria https 6 Belgium Ghent https 7 Brazil SP 1 https 8 Bulgaria https 9 Canada MB https 10 Chile https 11 China Beijing 4 https 12 Colombia Cali https 13 Czech Republic https 14 Denmark https 15 France Lyon 1 https 16 France Lyon 2 https 17 France Marseille https 18 France Paris 2 https 19 Germany Falkenstein https 20 Germany Munster https 21 Iceland https 22 Ireland https 23 Italy Padua https 24 Japan Tokyo https 25 Malaysia https 26 Mexico Mexico City https 27 New Zealand https 28 Norway https 29 Philippines https 30 Russia Moscow https 31 Serbia https 32 Spain A Coruna https 33 Spain Madrid https 34 Switzerland https 35 Taiwan Chungli https 36 Turkey Denizli https 37 UK Bristol https 38 UK Cambridge https 39 UK London 1 https 40 USA CA 1 https 41 USA IA https 42 USA KS https 43 USA MI 1 https 44 USA TN https 45 USA TX https 46 USA WA https 47 HTTP mirrors Selection Al escribir solo chooseCRANmirror se desplegara una ventana para elegirlo manualmente con el raton Lo mismo ocurrira si se omite graphics FALSE o se escribe graphics TRUE Cuando se instalan paquetes para analisis especializados especificos o que simplemente no tiene predeterminadamente instalados pero no activados el sistema se instala Asi pues en este caso los paquetes al ser un entorno con dependencias funcionan mejor con tales paquetes auxiliares Las dependencias pueden ser por ejemplo otros paquetes o bases de datos para que funcione o bien o mejor o de hecho lo haga Algunos paquetes funcionan con dependencias muy especificas otros con dependencias muy generales como sea a veces la misma instalacion al ser comun la dependencia lo hace de forma automatica pero no en todas las ocasiones Por esto para instalar el paquete de interes se escribira install packages deldir dep T Para la triangulacion de Delaunay y teselacion de Dirichlet junto con todas las dependencias Para activar la libreria pueden ser library deldir Para el ejemplo anterior library Benchmarking Para el Analisis de Datos Envolvente require maps Para elaborar mapas Previa instalacion require plot3D Para elaborar mapas 3D Previa instalacion Todos tanto con comillas dobles como con comillas simples o libres Si se instalaron las arriba mencionadas dependencias apareceran indicaciones luego del comando que describe las dependencias que tambien se activaron al llamar la libreria que se usara Ejemplo 2 Elaboracion de mapas Editar Para elaborar un mapa de Estados Unidos que sea sobre la tasa de desempleo de 2009 por condados municipios y que estos esten marcados por densidad de color se usara lo que a continuacion se presenta Basado en la solucion J del Choropleth Challenge Se puede obtener este ejemplo en ingles y con los colores originales en example map Para el ejemplo en espanol require maps activacion de libreria require mapproj se usara para projection polyconic Cargar los datos unemp incluye datos para condados de los Estados Unidos continentales Se excluyen Alaska Hawaii Puerto Rico y pequenas ciudades de Virginia data unemp Datos de desempleo data county fips mapa de los condados Se define la paleta de colores Escala de grises en este caso En el original rosas y magenta colors c F1EEF6 D3D3D3 B9B9B9 787878 2E2E2E 111111 Colores unemp colorBuckets lt as numeric cut unemp unemp c 0 2 4 6 8 10 100 Rangos de desempleo leg txt lt c lt 2 2 4 4 6 6 8 8 10 gt 10 Etiquetas de los rangos Se alinean los datos con definiciones de mapa parciales de emparejamientos de estados nombre de condados que incluyen varios poligonos para algunos condados cnty fips lt county fips fips match map county plot FALSE names county fips polyname colorsmatched lt unemp colorBuckets match cnty fips unemp fips Se dibuja el mapa Luego se guarda en JPEG jpeg desempleo Estados Unidos 2009 jpg width 1024 height 750 Crea imagen de 1024 x 750 pixeles map county col colors colorsmatched fill TRUE resolution 0 lty 0 projection polyconic Mapa general del desempleo en grises map state col white fill FALSE add TRUE lty 1 lwd 0 2 projection polyconic Mapa de los estados sobre puesto title main Desempleo por condado ano 2009 cex main 3 sub Creado con informacion de la solucion de J del Choropleth Challenge mas info en http blog revolutionanalytics com 2009 11 choropleth challenge result html Se creo el titulo del mapa legend top leg txt horiz T fill colors bg F1F1F1 cex 1 5 Indicacion de los colores por su rango map axes Para colocar ejes con la latitud y longitud dev off Para ver los limites del condado debiles vaya a RGui File SaveAs PDF Lo anterior da como resultado el mapa de la imagen inferior Ejemplo 3 Estimacion de salarios de manera semilogaritmica Editar El siguiente ejemplo es tomado del libro de Kleiber y Zeileis intitulado Applied Econometrics with R El ejemplo que abajo se expondra no es tomado al pie de la letra se le agregaron algunos cambios por el tipo de licencia no obstante el fin es el mismo Se agregan muchas cosas para hacer mas didactico el codigo y permitir exponer la flexibilidad del paquete estadistico R library AER Para el compendio de datos del libro de Kleiber amp Zeileis 2008 library scales Para las transparencias de los elementos de color library quantreg Para usar las regresiones por cuantiles data CPS1985 package AER Carga los datos del paquete AER cps lt CPS1985 Renombra la variable como cps cps lm lt lm log wage experience I experience 2 education data cps Hace la regresion simple cps rq lt rq log wage experience I experience 2 education data cps tau seq 0 2 0 8 by 0 15 Regresion por cuantiles cps2 lt data frame education mean cps education experience min cps experience max cps experience Crea un data frame con los datos pertinentes cps2 lt cbind cps2 predict cps lm newdata cps2 interval prediction Se agregan los valores requeridos al data frame anterior cps2 lt cbind cps2 predict cps rq newdata cps2 type Se agregan los valores tau a cps2 Los valores de los cuantiles jpeg salarios jpeg width 924 height 924 Crea una imagen en el directorio actual con 924x924 px de cada lado Se hace la grafica con plot log wage experience data cps Crea el mapeo principal de datos en el grafico pch 20 col 234DEA cex 2 Se crean los puntos azules rellenos axes F se eliminan los ejes ylab xlab Se eliminan los nombres de los ejes box lty 2 col 424242 lwd 2 Agregada una caja gris punteada Sigue agregar el eje de las abscisas de las x y el de las ordenadas axis 1 col 610B21 lwd 3 col axis 610B21 cex 2 axis 2 col 610B21 lwd 3 col axis 610B21 las 2 Se agregan las leyendas a los ejes mtext Experiencia side 1 cex 1 7 col 610B21 line 2 mtext Logaritmo del salario side 2 cex 1 7 col 610B21 line 2 for i in 6 10 lines cps2 i experience data cps2 hace el mapeo de las lineas predeterminadas col alpha FFFF00 75 lwd 5 lineas amarillas gruesas con un 75 de transperencia title Estimacion de los salarios en forma semi logaritmica cex main 2 7 col main 2E2E2E sub Con base en el libro de Kleiber amp Zeileis 2008 y con datos de Brendt 1991 col sub FF0000 font sub 4 cex sub 1 3 Se crearon el titulo y subtitulo con los colores y tipo de texto correspondientes dev off Se cierra el archivo de imegen JPEG en este caso Aca abajo aparece la imagen que se genero con el codigo de arriba Ademas cualquier error que en la imagen venga no es culpa de los autores del libro citado Los propietarios de los derechos de autor son totalmente los autores del libro Proyectos relacionados EditarBioconductor un conjunto de paquetes para el analisis de datos en genomica Rmetrics orientado al analisis de los mercados financieros y la valoracion de instrumentos de inversion Herramientas de productividad EditarExisten diversas interfaces que facilitan el trabajo con R Interfaces graficas Editar JGR o Java GUI for R una terminal de R multiplataforma basada en Java R Commander Rcmdr una interfaz grafica multiplataforma basada en tcltk RExcel que permite usar R y Rcmdr desde Microsoft Excel rggobi una interfaz a GGobi para visualizacion RKWard basado en KDE Sage Statistical Lab nexusBPM una herramienta de automatizacion RStudio Cantor 21 Editores e IDEs Editar Entre los editores de texto e IDEs con soporte para R se cuentan Bluefish 22 Crimson Editor ConTEXT Eclipse 23 Emacs Emacs Speaks Statistics Geany jEdit 24 Kate 25 RStudio 26 RKWard 27 Syn TextMate Tinn R Vim gedit SciTE WinEdt R Package RWinEdt notepad y Visual Studio 28 Sweave es un procesador de documentos que puede ejecutar codigo de R incrustado en codigo de LaTeX y para insertar codigo resultados y graficos en el documento escrito en LaTeX LyX puede usarse para crear y compilar documentos desarrollados en Sweave El paquete odfWeave es similar generando documentos en el formato OpenDocument ODF extensiones en estado experimental tambien permiten generar documentos del tipo presentacion u hoja de calculo Lenguajes de script Editar La funcionalidad de R puede ser invocada desde codigo desarrollado en otros lenguajes de script tales como Python mediante RPy 29 Perl mediante Statistics R 30 Ruby 31 y F 32 Tambien pueden desarrollarse scripts en R directamente usando littler 33 o Rscript que forma parte de la distribucion basica de R desde la version 2 5 0 Alternativas EditarLibres Editar Otras alternativas a R son las que abajo se presentan Cabe recordar que pueden tener cierto sesgo a especializarse en algun tema especifico como R lo hace con la biologia fisiologia o similares por ejemplo con el proyecto Bioconductor En el caso de estos sesgos positivos puede mencionarse a GNU Octave que es mas matematico o Gretl que se centra mas a series de tiempo usadas en econometria No obstante los sesgos tematicos hay amplisimos grupos que usan todas las alternativas para usos eclecticos Econometria biologia edafologia topologia estadistica pueden ser algunas de las ramas que cada vez estan usando mas las alternativas libres de software o lenguajes de programacion como R para su aplicacion teorica o practica Ademas los paquetes se desarrollan para R conforme las investigaciones o publicaciones como el caso del ejemplo 3 lineas arriba Otro ejemplo es el paquete de Benchmarking de R elaborado por Peter Bogetoft y Lars Otto ambos investigadores y especialistas del tema Es decir los productores de estos paquetes con casi siempre especialistas e investigadores que desean compartir los conocimientos aplicados a la comunidad de usuarios La naturaleza de los paquetes libres permiten que se testeen rapido y sean sinergicas las opiniones para un avance pronto Entonces existen ambitos positivos en este caso tambien tanto como en las siguientes alternativas las privativas GNU Octave Maxima Gnumeric Gretl WinBUGS PSPP 1 Privativas Editar No obstante las poderosas alternativas libres mencionadas arriba existen opciones que son privadas o empresariales En este caso pueden presentarse lenguajes de programacion con comunidades que comparten codigos En este caso Stata es un fuerte ejemplo Es decir un especialista puede desarrollar un paquete especial para ese programa y luego compartirlo usualmente con la empresa autora entonces la empresa puede distribuirla primero a manera de prueba y luego de forma gratuita o con montos monetarios especiales y con el respaldo de la calidad avalada Existen puntos a favor de que las empresas distribuyan con cierto aval los codigos o paqueterias se asegura del optimo funcionamiento de las mismas se evitan los bugs que eventualmente pueden ser comunes en ciertos codigos de las alternativas libres y otras mas S Plus Archivado el 10 de abril de 2008 en Wayback Machine SPSS Minitab SAS Statistica StataReferencias Editar A Brief History R Past and Future History Ross Ihaka Statistics Department The University of Auckland Auckland New Zealand available from the CRAN website Kleiber Christian Zeileis Achim 2008 Applied Econometrics with R 1ra edicion Springer Science Business Media p 15 ISBN 978 0 387 77316 2 What s new in R What s new in R Peter Dalgaard R 1 0 0 is released Consultado el 6 de junio de 2009 Jackman Simon Spring 2003 R For the Political Methodologist PDF The Political Methodologist Political Methodology Section American Political Science Association 11 1 20 22 Archivado desde el original el 21 de julio de 2006 Consultado el 3 de agosto de 2006 Speed comparison of various number crunching packages version 2 SciView Archivado desde el original el 16 de octubre de 2007 Consultado el 3 de noviembre de 2007 RWeka An R Interface to Weka R package version 0 3 17 Kurt Hornik Achim Zeileis Torsten Hothorn and Christian Buchta Consultado el 2009 JMP 2013 Analytical Application Development with JMP SAS Institute Inc Consultado el 19 de septiembre de 2013 New in Mathematica 9 Built in Integration with R Wolfram 2013 Consultado el 18 de septiembre de 2013 Henson Robert 23 de julio de 2013 MATLAB R Link The MathWorks Inc Consultado el 18 de septiembre de 2013 Gibson Brendan 8 de marzo de 2010 Spotfire Integration with S and R Spotfire Archivado desde el original el 19 de marzo de 2012 Consultado el 19 de septiembre de 2013 Clark Mike octubre de 2007 Introduction to SPSS 16 University of North Texas Research and Statistical Support Consultado el 19 de septiembre de 2013 StatSoft n d Using the R Language Platform StatSoft Inc Archivado desde el original el 12 de junio de 2013 Consultado el 20 de septiembre de 2013 Parmar Onkar 31 de marzo de 2011 R integrated with Symphony Platform Computing Corporation Consultado el 20 de septiembre de 2013 SAS 11 de noviembre de 2010 Calling Functions in the R Language SAS IML Consultado el 20 de septiembre de 2013 Tableau 17 de diciembre de 2013 R is Here Consultado el 29 de enero de 2015 Building a Bridge to the R Community Esri 20 de julio de 2015 Consultado el 14 de abril de 2016 Dundas R Integrated with Dundas BI Consultado el 30 de julio de 2015 Statgraphics R Interface Editions and supported features of SQL Server 2017 15 de marzo de 2018 Cantor Description The KDE Education Project Consultado el 4 de noviembre de 2012 Customizable syntax highlighting based on Perl Compatible regular expressions with subpattern support and default patterns for R tenth bullet point Bluefish Features Bluefish website retrieved 9 July 2008 Stephan Wahlbrink StatET Eclipse based IDE for R Consultado el 26 de septiembre de 2009 Jose Claudio Faria R syntax Consultado el 3 de noviembre de 2007 Syntax Highlighting Kate Development Team Archivado desde el original el 7 de julio de 2008 Consultado el 9 de julio de 2008 Integrated Development Environment IDE for R RStudio Inc Consultado el 16 de marzo de 2012 Pagina proyecto RKWard NppToR R in Notepad RPy home page Statistics R page onCPAN RSRuby GitHub project F R Type Provider littler web siteEnlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre R Pagina oficial The R Reference Manual Base Package R Development Core Team ISBN 0 9546120 0 0 vol 1 ISBN 0 9546120 1 9 vol 2 Coleccion de paquetes en CRAN Comprehensive R Archive Network R Wiki Interfaz Web para R R Graph Gallery una coleccion de graficos creados con R Proyecto R UCA Universidad de Cadiz Como instalar R en tu ordenador gratis Documentacion en espanol Editar R para Principiantes la version en espanol de R for Beginners traducido por Jorge A Ahumada PDF Version en espanol de An Introduction to R por Andres Gonzalez y Silvia Gonzalez PDF Estadistica Basica con R y R Commander libro libre Graficos Estadisticos con R por Juan Carlos Correa y Nelfi Gonzalez PDF Cartas sobre Estadistica de la Revista Argentina de Bioingenieria por Marcelo R Risk PDF Introduccion al uso y programacion del sistema estadistico R por Ramon Diaz Uriarte transparencias preparadas para un curso de 16 horas sobre R dirigido principalmente a biologos y especialistas en bioinformatica PDF Lista de correo R help es en espanol Lista de correo oficial de R en espanol Datos Q206904 Multimedia GNU R Q206904 Libros y manuales Analisis estadistico y econometrico usando GNU R Obtenido de https es wikipedia org w index php title R lenguaje de programacion amp oldid 147573009, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos