R | |
---|---|
clase de idioma | paradigma múltiple |
tipo de ejecución | interpretado |
Apareció en | 1993 [1] |
Autor |
Ross Ihaka Robert Caballero |
Liberar | 4.2.1 (23 de junio de 2022 ) |
sistema de tipos | dinámica |
sido influenciado | S , esquema |
Licencia | GNU GPL 2 [3] |
Sitio web | r-proyecto.org _ |
sistema operativo | GNU/Linux [4] , BSD [4] , macOS [4] y Microsoft Windows [4] |
Archivos multimedia en Wikimedia Commons |
R es un lenguaje de programación para procesamiento de datos estadísticos y gráficos, así como un entorno informático gratuito y de código abierto bajo el Proyecto GNU . El lenguaje fue creado como similar al lenguaje S desarrollado en Bell Labs , y es su implementación alternativa, aunque existen diferencias significativas entre los lenguajes, pero en su mayor parte el código en el lenguaje S funciona en el entorno R. Inicialmente, R fue desarrollado por Ross Aihaka ( ing. Ross Ihaka ) y Robert Gentleman ( ing. Robert Gentleman ) (la primera letra de sus nombres es R); el lenguaje y el entorno son mantenidos y desarrollados por la R Foundation [5] .
Ampliamente utilizado como software estadístico para el análisis de datos y se ha convertido en el estándar de facto para los programas estadísticos [6] .
El idioma y el entorno están disponibles bajo GNU GPL ; distribuidos en forma de códigos fuente, así como aplicaciones compiladas para una serie de sistemas operativos: FreeBSD , Solaris [7] y otras distribuciones de Unix y Linux , Windows , macOS .
R usa una interfaz de línea de comandos , aunque hay varias interfaces gráficas de usuario disponibles , como el paquete R Commander , RKWard , RStudio , Weka , Rapid Miner , KNIME e integraciones en suites de oficina.
En 2010, R entró en la lista de ganadores del concurso de la revista Infoworld en la nominación al mejor software de desarrollo de aplicaciones de código abierto [8] .
R es un lenguaje de programación interpretado, la principal forma de trabajar con él es el intérprete de comandos. El lenguaje distingue entre mayúsculas y minúsculas, en términos de sintaxis es similar, por un lado, a los lenguajes funcionales como Scheme , por otro lado, a los típicos lenguajes de script modernos , con una sintaxis simple y un pequeño conjunto de básicos. estructuras Lenguaje de objetos: cualquier objeto de programa en él tiene un conjunto de atributos, una lista con nombre de valores que lo definen.
El lenguaje admite un conjunto mínimo de tipos de datos primitivos: carácter (carácter), numérico (numérico), lógico (lógico) y complejo (complejo). Las variables numéricas, además de los números ordinarios, pueden tomar los valores especiales NaN (No es un número - "no es un número") e Inf (Infinito - "infinito"). El infinito (positivo o negativo) se obtiene cuando el resultado del cálculo supera los límites del rango representado por la implementación, NaN, durante operaciones con un resultado indefinido. Además de estos, existe otro valor especial muy importante, NA (No Disponible). Se puede utilizar para corregir el hecho de que por alguna razón no se obtuvo el valor correspondiente involucrado en los cálculos (una situación bastante común en los cálculos estadísticos cuando, debido a fallas en la recolección de datos, algunas observaciones quedan sin resultados).
Los valores de tipos primitivos se pueden combinar en vectores (vector), listas (lista), matrices o matrices (matriz), incluidas las multidimensionales; estos tipos combinados almacenan conjuntos de datos del mismo tipo primitivo. Además, el lenguaje contiene el concepto de factores (factor): conjuntos de datos categóricos o de escala que toman un conjunto de valores estrictamente definido. Finalmente, se pueden crear tablas (marcos de datos), estructuras de datos que almacenan un conjunto de parámetros (características) diferentes (y de diferentes tipos) para cada fila (individual). Una característica de R es que las operaciones con vectores y matrices son compatibles a nivel del propio lenguaje, como, por ejemplo, en APL .
Existe una operación para extraer y escribir datos (análoga a una asignación) " <-", así como las operaciones habituales para trabajar con datos, incluidas las aritméticas. El acceso por índice a los elementos de vectores y matrices se realiza mediante corchetes, acceso a los atributos de listas, a través del operador " $". Hay un conjunto mínimo de construcciones de programación imperativa comunes: operador condicional if, bucles whiley for. Las expresiones en R pueden describirse como objetos separados y evaluarse según sea necesario. La descripción de funciones se basa en el mismo mecanismo. Hay funciones integradas para aplicar expresiones y funciones a vectores y matrices.
Las funciones de R se pueden agrupar en paquetes: módulos cargables que se conectan a cualquier programa y proporcionan las funciones informáticas combinadas en ellos. Los paquetes para R pueden desarrollarse en otros lenguajes de programación, incluido C, lo que permite, por un lado, compensar los recursos visuales limitados del propio lenguaje R y, por otro lado, lograr un alto rendimiento computacional si es necesario.
El lenguaje en sí tiene medios bastante limitados y no muy convenientes para describir datos, pero esto se compensa con la presencia de herramientas de biblioteca que le permiten cargar conjuntos de datos presentados en la mayoría de los formatos abiertos y propietarios como tablas R. Por lo tanto, las tablas en formato de texto sin formato, las tablas de Excel de varias versiones, los datos en formato CSV , XML y muchos otros se pueden cargar fácilmente en R.
En general, como lenguaje de programación, R es bastante simple e incluso primitivo. Su mayor fortaleza es su capacidad de expandirse indefinidamente con paquetes. La distribución base de R incluye un conjunto básico de paquetes y, en total, a partir de 2019, hay más de 15 316 paquetes disponibles [9] . Casi todas las herramientas relevantes de la computación estadística universal están implementadas en R, como el análisis de regresión y el análisis de series temporales , así como muchos algoritmos específicos para resolver problemas e investigaciones altamente especializados en ciertas áreas.
Otra característica del lenguaje es la capacidad de crear gráficos de nivel tipográfico de alta calidad que pueden exportarse a formatos gráficos comunes y usarse para presentaciones o publicaciones. Hay paquetes disponibles que vinculan R con marcos GUI (por ejemplo, basados en Tcl/Tk ) y le permiten crear utilidades de análisis estadístico especializadas con una interfaz gráfica de usuario y mostrar resultados en forma de gráficos y cuadros.
Resultado:
[1] 4 3 3 3 3 4 4 4 4 4 5 4 4 4 5 5 5 5 3 5 5 4 4 3 3 4 4 3 5 5 4 3 3 4 4 3 3 5 | salida a (38 números de 41 caben en la cadena) [39] 4 5 5 | (tres números restantes) [1] 41 | salida f [1] 4 | salida m Estimación No. % | 1ra columna - número de fila en la tabla 1 3 12 29.26829 | 2ª columna - tipo de evaluación ("3"/"4"/"5") 2 4 17 41.46341111 | 3ra columna - número de calificaciones 3 5 12 29.26829 | 4ta columna - porcentaje de calificacionesSe han desarrollado varias interfaces gráficas para facilitar el trabajo con R, incluidas RStudio , JGR , RKWard , SciViews-R , Statistical Lab , R Commander , Rattle y el paquete de software Shiny .
Además, varios editores de texto y código ofrecen modos especiales para trabajar con R, en particular ConTEXT , Emacs ( Emacs Speaks Statistics ), jEdit , Kate , Notepad++ , Syn , TextMate , Tinn-R , Vim , Bluefish , WinEdt (con paquete RWinEdt), Gedit (con el paquete rgedit/gedit-r-plugin). Hay un complemento R especializado para el entorno de desarrollo de Eclipse ; Se puede acceder a las funciones y el tiempo de ejecución de R desde Python usando el paquete RPy; Se puede trabajar con R desde el paquete econométrico de Gretl .
Revolution Analytics , fundada en 2007 y adquirida por Microsoft en 2015, basó todo su negocio en la comercialización del lenguaje de programación R, en su paquete comercial Revolution R , componentes tales (no distribuidos con la versión gratuita del lenguaje) como ParallelR (soporte para runtime multithreading), R Productivity Environment ( entorno de desarrollo integrado ), RevoScaleR (soporte para procesamiento paralelo masivo en el marco del concepto de " big data "), RevoDeployR , bibliotecas para integración con servicios web, soporte para SAS Institute formatos de paquetes estadísticos [10] .
En octubre de 2011, Oracle Corporation lanzó Big Data Appliance , un clúster NoSQL de servidores de procesamiento paralelo masivo con herramientas de software integradas basadas en el lenguaje R y Apache Hadoop [11] , y en febrero de 2012, el lenguaje se incorporó a la base de datos Oracle [ 12] . En 2011 se implementó el análisis paralelo de masas por medio de R en los complejos hardware-software Netezza de IBM Corporation [13] [14] ; más tarde, el idioma se admitió en el paquete de software y hardware de SAP Hana .
El lenguaje R también es compatible con los entornos de software comerciales Tibco Spotfire , SPSS (a partir de la versión 16.0) [15] , Statistica (a partir de la versión 9.0), Platform Symphony , Power BI , SAS , Tableau .
R y los paquetes adicionales se distribuyen a través de CRAN (acrónimo de Comprehensive R Archive Network ). A fines de la década de 2010, más de 60 espejos CRAN están disponibles en el mundo, el nodo principal se encuentra en Viena ( Austria ) [16] .
The R Journal [17] , una revista informativa de distribución gratuita que se publica dos o tres veces al año, incluye artículos sobre procesamiento e ingeniería de datos estadísticos, dirigidos tanto a usuarios del lenguaje como a desarrolladores de R. Desde enero de 2001 hasta octubre de 2008, se publicó como boletín R Noticias [18] .
Una de las conferencias de idiomas más populares es useR! ( The R User Conference ), que se realiza anualmente desde 2004 , reúne a expertos en diversos campos.
Desde 2009, cada primavera en Chicago , se lleva a cabo una conferencia dedicada a la aplicación de R en finanzas ( R/Finance: Applied Finance with R ). En 2013 se llevó a cabo la primera conferencia dedicada al uso de R en seguros ( R in Insurance ).