Qué es el paquete R: manual de instrucciones. El entorno informático estadístico R: experiencia de uso en la enseñanza Paquetes de idiomas r

Programación en R. Nivel 1. Conceptos básicos

El lenguaje R es la herramienta de análisis de datos estadísticos más popular del mundo. Contiene una amplia gama de capacidades para analizar datos, visualizarlos y crear documentos y aplicaciones web. ¿Quieres dominar este poderoso lenguaje con la guía de un mentor experimentado? Te invitamos al curso "Programación en lenguaje R. Nivel 1. Conocimientos básicos".

Este curso está dirigido a una amplia gama de especialistas que necesitan buscar patrones en grandes cantidades de datos, visualizarlos y sacar conclusiones estadísticamente correctas: sociólogos, gestores de ensayos clínicos/farmacólogos, investigadores (astronomía, física, biología, genética, medicina, etc.), analistas de TI, analistas de negocios, analistas financieros, especialistas en marketing. El curso también atraerá a especialistas que no se sientan cómodos con la funcionalidad (o las tarifas) / .

Durante las clases adquirirás habilidades básicas en análisis y visualización de datos en el entorno. R. La mayor parte del tiempo se pasa tareas practicas y trabajar con conjuntos de datos reales. Aprenderá todas las nuevas herramientas para trabajar con datos y aprenderá cómo aplicarlas en su trabajo.

Finalizado el curso se expide un certificado de formación avanzada del centro.

Hablemos un poco del lenguaje de programación llamado R. Últimamente Puedes leer artículos en nuestros blogs sobre y, aquellas áreas en las que simplemente necesitas tener a mano un lenguaje potente para trabajar con estadísticas y gráficos. Y R es sólo uno de ellos. Será bastante difícil para un recién llegado al mundo de la programación creer esto, pero hoy en día R ya es más popular que SQL y se utiliza activamente en organizaciones comerciales, investigaciones y universidades.

Sin profundizar en las reglas, sintaxis y Areas especificas aplicaciones, solo echemos un vistazo a los libros y recursos esenciales que lo ayudarán a aprender R desde cero.

Qué es el lenguaje R, por qué lo necesita y cómo usarlo sabiamente, puede aprenderlo del maravilloso Ruslan Kuptsov, que dirigió hace poco menos de un año como parte de GeekWeek-2015.

Libros

Ahora que hay un cierto orden en tu cabeza, puedes empezar a leer literatura, afortunadamente hay más que suficiente. Empecemos por los autores nacionales:


recursos de Internet

Cualquier persona que quiera aprender cualquier lenguaje de programación debe visitar dos recursos en busca de conocimiento: el sitio web oficial de sus desarrolladores y el más grande comunidad online. Bien. No hagamos una excepción con R:

Pero, de nuevo, imbuido de preocupación por aquellos que idioma en Inglés No he tenido tiempo de aprenderlo todavía, pero tengo muchas ganas de aprender R. Mencionemos algunos recursos rusos:

Mientras tanto, completemos el cuadro con una pequeña lista de sitios en inglés, pero no menos educativos:

CRAN es en realidad un lugar donde puedes descargar el entorno de desarrollo R a tu computadora. Además, manuales, ejemplos y otras lecturas útiles;

Quick-R: breve y claramente sobre estadísticas, métodos para procesarlas y el lenguaje R;

Burns-Stat: sobre R y su predecesor S con una gran cantidad de ejemplos;

R for Data Science es otro libro de Garrett Grolemund, traducido a un formato de libro de texto en línea;

Awesome R: una selección del mejor código del sitio web oficial, publicado en nuestro querido GitHub;

Mran: lenguaje R de Microsoft;

Tutorial R es otro recurso con información organizada del sitio web oficial.

Debes escribir esto en la terminal.

La belleza de R es esta:

  1. Este programa es gratuito (distribuido bajo licencia GPL),
  2. Se han escrito muchos paquetes para que este programa resuelva una amplia gama de problemas. Todos ellos también son gratuitos.
  3. El programa es muy flexible: los tamaños de cualquier vector y matriz se pueden cambiar a petición del usuario, los datos no tienen una estructura rígida. Esta propiedad resulta de gran utilidad en el caso de la previsión, cuando el investigador necesita dar una previsión para un período arbitrario.

Esta última propiedad es especialmente relevante ya que otros paquetes estadísticos (como SPSS, Eviews, Stata) asumen que puede que sólo nos interese analizar datos que tengan una estructura fija (por ejemplo, todos los datos de un archivo de trabajo deben tener la misma periodicidad). con las mismas fechas de inicio y fin).

Sin embargo, R no es el programa más amigable. Mientras trabaja con él, olvídese del mouse: casi todas las acciones más importantes se realizan usando línea de comando. Sin embargo, para hacer la vida un poco más fácil y el programa en sí un poco más acogedor, existe un programa frontend ( Interfaz) llamado RStudio. Puedes descargarlo desde aquí. Se instala después de que R ya esté instalado. RStudio tiene muchas herramientas convenientes y una interfaz agradable, sin embargo, el análisis y el pronóstico aún se realizan mediante la línea de comando.

Intentemos echar un vistazo a este maravilloso programa.

Conociendo RStudio

La interfaz RStudio parece de la siguiente manera:

En la esquina superior derecha de RStudio se indica el nombre del proyecto (que por ahora tenemos “Ninguno”, es decir, falta). Si hacemos clic en esta inscripción y seleccionamos “Nuevo proyecto” (nuevo proyecto), se nos pedirá que creemos un proyecto. Para fines de pronóstico básicos, simplemente seleccione "Nuevo directorio" ( nueva carpeta para el proyecto), “Empty Project” (proyecto vacío), y luego ingrese el nombre del proyecto y seleccione el directorio en el que guardarlo. Usa tu imaginación e intenta pensar en un nombre tú mismo :).

Cuando trabaja con un proyecto, siempre puede acceder a los datos, comandos y scripts almacenados en él.

En el lado izquierdo de la ventana de RStudio está la consola. Aquí es donde ingresaremos varios comandos. Por ejemplo, escribamos lo siguiente:

X< - rnorm (100 , 0 , 1 )

Este comando generará 100 variables aleatorias a partir de una distribución normal con expectativa cero y varianza unitaria, luego creará un vector llamado "x" y escribirá los 100 valores resultantes en él. Símbolo "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->”, aunque nuestra variable en este caso debería estar a la derecha. Por ejemplo, el siguiente código creará un objeto "y" que es absolutamente idéntico al objeto "x":

x -> y

Estos vectores aparecen ahora en la parte superior derecha de la pantalla, bajo la pestaña, que he titulado “Entorno”:

Cambios en la pestaña “Entorno”

En esta parte de la pantalla se mostrarán todos los objetos que guardemos durante la sesión. Por ejemplo, si creamos una matriz como esta:

\(A = \begin(pmatrix) 1 y 1 \\ 0 y 1 \end(pmatrix) \)

con este comando:

A< - matrix (c (1 , 0 , 1 , 1 ) , 2 , 2 )

luego aparecerá en la pestaña “Entorno”:

Cualquier función que utilicemos requiere que le asignemos unos valores a determinados parámetros. En función matriz() existen los siguientes parámetros:

  • datos: vector con datos que deben escribirse en la matriz,
  • nrow – número de filas en la matriz,
  • ncol – número de columnas en la matriz,
  • byrow - parámetro lógico. Si es “VERDADERO” (verdadero), entonces la matriz se completará en filas (de izquierda a derecha, fila por fila). De forma predeterminada, este parámetro está establecido en FALSO.
  • dimnames: una hoja con nombres de filas y columnas.

Algunos de estos parámetros tienen valores predeterminados (por ejemplo, byrow = FALSO), mientras que otros pueden omitirse (por ejemplo, nombres tenues).

Uno de los trucos de "R" es que cualquier función (por ejemplo, nuestra matriz()) se puede abordar estableciendo los valores directamente:

Otra opción es hacer clic en el nombre del objeto en la pestaña "Entorno".

Matriz

donde matriz es el nombre de la función que nos interesa. En este caso, RStudio abrirá el panel de “Ayuda” especialmente para usted con una descripción:

También puede encontrar ayuda sobre una función escribiendo el nombre de la función en la ventana de “búsqueda” (icono con una lente) en la pestaña “Ayuda”.

Si no recuerdas exactamente cómo escribir el nombre de una función o qué parámetros se utilizan en ella, simplemente comienza a escribir su nombre en la consola y presiona el botón “Tab”:

Además de todo esto, puedes escribir scripts en RStudio. Es posible que los necesite si necesita escribir un programa o llamar a una secuencia de funciones. Los scripts se crean usando el botón con un signo más en la esquina superior izquierda (debe seleccionar "R Script" en el menú desplegable). En la ventana que se abre después de esto, puede escribir cualquier función y comentario. Por ejemplo, si queremos trazar un gráfico lineal sobre la serie x, podemos hacerlo así:

trama(x)

lineas(x)

La primera función construye un diagrama de dispersión simple y la segunda función agrega líneas encima de los puntos que conectan los puntos en serie. Si selecciona estos dos comandos y presiona "Ctrl+Enter", se ejecutarán, lo que hará que RStudio abra la pestaña "Trazado" en la esquina inferior derecha y muestre el trazado trazado en ella.

Si aún necesitamos todos los comandos escritos en el futuro, entonces este script se puede guardar (disquete en la esquina superior izquierda).

En caso de que necesite consultar un comando que ya haya escrito en el pasado, hay una pestaña "Historial" en la parte superior derecha de la pantalla. En él puede buscar y seleccionar cualquier comando que le interese y hacer doble clic para pegarlo en la consola. En la propia consola, puedes acceder a los comandos anteriores usando los botones Arriba y Abajo de tu teclado. La combinación de teclas "Ctrl+Arriba" le permite mostrar una lista de todos los comandos recientes en la consola.

En general, RStudio tiene muchas opciones diferentes. combinaciones útiles claves que facilitan mucho el trabajo con el programa. Puedes leer más sobre ellos.

Como mencioné anteriormente, existen muchos paquetes para R. Todos ellos están ubicados en el servidor CRAN y para instalar cualquiera de ellos es necesario saber su nombre. La instalación y actualización de paquetes se realiza mediante la pestaña "Paquetes". Accediendo a él y pulsando en el botón “Instalar”, veremos algo parecido al siguiente menú:

Escribimos en la ventana que se abre: pronóstico es un paquete escrito por Rob J. Hyndman que contiene un montón de funciones útiles para nosotros. Haga clic en el botón "Instalar", después de lo cual se instalará el paquete "pronóstico".

Alternativamente, podemos instalar cualquier paquete, sabiendo su nombre, usando el comando en la consola:

instalar. paquetes ("suave")

siempre que esté, por supuesto, en el repositorio de CRAN. liso es un paquete en el que desarrollo y mantengo funciones.

Algunos paquetes solo están disponibles en códigos fuente en sitios como github.com y requieren que se compilen primero. Para crear paquetes en Windows, es posible que necesite el programa Rtools.

Para utilizar cualquiera de los paquetes instalados, debe habilitarlo. Para hacer esto, debe buscarlo en la lista y marcarlo, o usar el comando en la consola:

biblioteca (previsión)

Puede aparecer un problema desagradable en Windows: algunos paquetes se descargan y ensamblan fácilmente, pero no se instalan de ninguna manera. R en este caso escribe algo como: "Advertencia: no se puede mover la instalación temporal...". Todo lo que necesitas hacer en este caso es agregar la carpeta con R a las excepciones en tu antivirus (o desactivarla mientras instalas paquetes).

Tras descargar el paquete, todas las funciones incluidas en el mismo estarán disponibles para nosotros. Por ejemplo, la función pantalla ts(), que se puede utilizar así:

pantalla ts(x)

Ella nos construirá tres gráficos, que discutiremos en el capítulo "Kit de herramientas del pronosticador".

Además del paquete pronóstico Utilizo el paquete con bastante frecuencia para varios ejemplos. Mcomp. Contiene series de datos de la base de datos M-Competition. Por eso te recomiendo que lo instales también.

Muy a menudo necesitaremos no sólo conjuntos de datos, sino también datos de la clase “ts” (series de tiempo). Para crear una serie de tiempo a partir de cualquier variable, debe ejecutar el siguiente comando:

X< - ts (x , start = c (1984 , 1 ) , frequency = 12 )

Aquí está el parámetro comenzar le permite especificar la fecha a partir de la cual comienza nuestra serie temporal, y frecuencia establezca la frecuencia de datos. El número 12 en nuestro ejemplo indica que estamos tratando con datos mensuales. Como resultado de ejecutar este comando, transformamos nuestro vector “x” en una serie temporal de datos mensuales a partir de enero de 1984.

El análisis estadístico es una parte integral de la investigación científica. El procesamiento de datos de alta calidad aumenta las posibilidades de publicar un artículo en una revista de renombre y llevar la investigación a nivel internacional. Hay muchos programas que pueden proporcionar análisis de alta calidad, pero la mayoría son pagos y, a menudo, la licencia cuesta varios cientos de dólares o más. Pero hoy vamos a hablar de un entorno estadístico por el que no es necesario pagar y cuya fiabilidad y popularidad rivaliza con las mejores estadísticas comerciales. paquetes: ¡te presentaremos R!

¿Qué es R?

Antes de dar una definición clara, cabe señalar que R es más que un simple programa: es un medio, un lenguaje e incluso un movimiento. Miraremos a R desde diferentes ángulos.

R es un entorno informático, desarrollado por científicos de datos, modelo matematico y trabajar con gráficos. R se puede utilizar como una calculadora simple, puede realizar análisis estadísticos simples (por ejemplo, ANOVA o análisis de regresión) y cálculos más complejos que requieren mucho tiempo, probar hipótesis, crear gráficos y mapas vectoriales. Esta no es una lista completa de lo que se puede hacer en este entorno. Vale la pena señalar que se distribuye de forma gratuita y se puede instalar tanto en Windows como en SO Clase UNIX (Linux y MacOS X). En otras palabras, R es gratuito y multiplataforma.

R es un lenguaje de programación, gracias al cual puedes escribir tus propios programas ( guiones) usar , así como usar y crear extensiones especializadas ( paquetes). Un paquete es un conjunto de archivos con información de contexto y ejemplos reunidos en un solo archivo. juegan un papel importante ya que se usan como extensiones adicionales basadas en R. Cada paquete generalmente está dedicado a un tema específico, por ejemplo: el paquete "ggplot2" se usa para trazar hermosos gráficos vectoriales diseño específico, y el paquete "qtl" es ideal para mapeo genético. Hay varios paquetes de este tipo en la biblioteca R: este momento¡más de 7000! Todos ellos han sido revisados ​​en busca de errores y son de dominio público.


R es para comunidad/movimiento.
Dado que R es un producto gratuito y de código abierto, su desarrollo, prueba y depuración no lo lleva a cabo una empresa independiente con personal contratado, sino los propios usuarios. Durante dos décadas, se ha formado una enorme comunidad a partir de un núcleo de desarrolladores y entusiastas. Según los últimos datos, más de 2 millones de personas de una forma u otra ayudaron de forma voluntaria a desarrollar y promover R, desde la traducción de documentación hasta la creación de cursos de formación y finalizando con el desarrollo de nuevas aplicaciones para la ciencia y la industria. Hay una gran cantidad de foros en Internet donde puede encontrar respuestas a la mayoría de las preguntas relacionadas con R.

¿Cómo es el entorno R?

Hay muchos "shells" para R, cuya apariencia y funcionalidad pueden variar mucho. Pero veremos brevemente sólo tres de las opciones más populares: Rgui, Rstudio y R, iniciadas en la terminal Linux/UNIX como una línea de comando.


El lenguaje R en el mundo de los programas estadísticos

Actualmente existen decenas de paquetes estadísticos de alta calidad, entre los que los líderes indiscutibles son SPSS, SAS y MatLab. Sin embargo, en 2013, a pesar de la alta competencia, R se convirtió en el más utilizado. producto de software para análisis estadístico en publicaciones cientificas(http://r4stats.com/articles/popularity/). Además, en la última década, R se ha vuelto cada vez más popular en el sector empresarial: empresas gigantes como Google, Facebook, Ford y el New York Times lo utilizan activamente para recopilar, analizar y visualizar datos (http://www.revolutionanalytics .com/companies-using-r). Para comprender las razones de la creciente popularidad del lenguaje R, prestemos atención a su características comunes y diferencias con otros productos estadísticos.

En general, la mayoría de herramientas estadísticas se pueden dividir en tres tipos:

  1. programas con interfaz gráfica , basado en el principio “haga clic aquí, aquí y obtenga el resultado final”;
  1. lenguajes de programación estadística, que requieren conocimientos básicos de programación;
  1. "mezclado", que también cuentan con una interfaz gráfica ( GUI) y la capacidad de crear programas de script (por ejemplo: SAS, STATA, Rcmdr).

Características de los programas con GUI.

Los programas con interfaz gráfica tienen una apariencia familiar para el usuario promedio y son fáciles de aprender. Pero para una solución tareas no triviales no son adecuados porque tienen un conjunto limitado de estadísticas. métodos y es imposible escribir sus propios algoritmos en ellos. El tipo mixto combina la conveniencia de un shell GUI y el poder de los lenguajes de programación. Sin embargo cuando comparación detallada Las capacidades estadísticas con los lenguajes de programación SAS y STATA son inferiores tanto a R como a MatLab (comparación de los métodos estadísticos R, MatLab, STATA, SAS, SPSS). Además, tendrás que pagar una buena cantidad de dinero para obtener la licencia de estos programas, y la única alternativa gratuita es Rcmdr: un shell para R con una GUI (Rcommander).

Comparación de R con los lenguajes de programación MatLab, Python y Julia

Entre los lenguajes de programación utilizados en cálculos estadísticos, las posiciones de liderazgo las ocupan R y Matlab. Son similares entre sí, como en apariencia, y en términos de funcionalidad; pero tienen diferentes lobbys de usuarios, lo que determina su especificidad. Históricamente, MatLab estuvo enfocado a las ciencias aplicadas de las especialidades de ingeniería, por lo que fortalezas son estera. modelado y cálculos, ¡además es mucho más rápido que R! Pero dado que R se desarrolló como un lenguaje de perfil limitado para procesamiento estadístico datos, luego muchas estadísticas experimentales. En él aparecieron y se consolidaron métodos. Este hecho y su coste cero han convertido a R en una plataforma ideal para el desarrollo y uso de nuevos paquetes utilizados en las ciencias básicas.

Otros lenguajes "competidores" son Python y Julia. En mi opinión, Python, al ser un lenguaje de programación de propósito general, es más adecuado para el procesamiento de datos y la recopilación de información utilizando tecnologías web que para el análisis y visualización estadísticos (las principales diferencias entre R y Python están bien descritas). Pero el lenguaje estadístico Julia es un proyecto bastante joven y ambicioso. La característica principal de este lenguaje es la velocidad de los cálculos, ¡en algunas pruebas superó R en 100 veces! Si bien Julia se encuentra en una etapa temprana de desarrollo y tiene poca paquetes adicionales y seguidores, pero a largo plazo Julia es quizás la única competidora potencial de R.

Conclusión

Por tanto, el lenguaje R es ahora una de las herramientas estadísticas líderes en el mundo. Se utiliza activamente en genética, biología molecular y bioinformática, ciencias ambientales (ecología, meteorología) y disciplinas agrícolas. R también se utiliza cada vez más en el procesamiento de datos médicos, desplazando del mercado a paquetes comerciales como SAS y SPSS.

Ventajas del entorno R:

  • gratuito y multiplataforma;
  • rico arsenal de estadísticas. métodos;
  • gráficos vectoriales de alta calidad;
  • más de 7000 paquetes probados;
  • flexible de usar:
    - le permite crear/editar scripts y paquetes,
    - interactúa con otros lenguajes, como: C, Java y Python,
    - puede trabajar con formatos de datos para SAS, SPSS y STATA;
  • comunidad activa de usuarios y desarrolladores;
  • Actualizaciones periódicas, buena documentación y soporte técnico. apoyo.

Defectos:

  • una pequeña cantidad de información en ruso (aunque en los últimos cinco años han aparecido varios cursos de formación y libros interesantes);
  • relativa dificultad de uso para un usuario no familiarizado con los lenguajes de programación. Esto se puede solucionar parcialmente trabajando en el shell Rcmdr GUI, sobre el cual escribí anteriormente, pero por soluciones no estándar aún necesitas usar la línea de comando.

Lista de fuentes útiles

  1. Sitio web oficial: http://www.r-project.org/
  2. Sitio web para principiantes: http://www.statmethods.net/
  3. Uno de los mejores libros de referencia: The R Book, segunda edición de Michael J. Crawley, 2012
  4. Lista de literatura disponible en ruso + buen blog

En agosto de 1993, dos jóvenes científicos neozelandeses de la Universidad de Auckland anunciaron su nuevo desarrollo, al que llamaron R. Según sus creadores, Robert Gentleman y Ross Ihaka, se suponía que se trataba de una nueva implementación del lenguaje S, diferente de S-PLUS con algunos detalles, por ejemplo, manejo de variables globales y locales, además de trabajar con memoria. De hecho, no crearon un análogo completo de S-PLUS, sino una nueva "rama" en el "árbol S". Muchas de las cosas que distinguen a R de S-PLUS se deben a la influencia del lenguaje Scheme (un lenguaje de programación funcional, uno de los dialectos más populares del lenguaje Lisp).

A mediados de 2016, R había alcanzado a SAS y SPSS (que son de pago) y se convirtió en uno de los tres sistemas más comunes para procesar información estadística. También cabe señalar que R es uno de los 10 lenguajes de programación de propósito general.

Posibilidades

En el entorno R se implementan muchos métodos estadísticos: modelos lineales y no lineales, pruebas de hipótesis estadísticas, análisis de series de tiempo, clasificación, agrupamiento y visualización gráfica. El lenguaje R le permite definir sus propias funciones. Muchas funciones de R están escritas en el propio R. Para problemas computacionalmente complejos, es posible implementar funciones en C, C++ y Fortran. Los usuarios avanzados pueden acceder directamente a los objetos R desde el código C. R es un lenguaje orientado a objetos más riguroso que la mayoría de los lenguajes de computación estadística. Las funciones gráficas permiten crear gráficos de buena calidad de impresión, con la posibilidad de incluir símbolos matemáticos. Tiene su propio formato de documentación similar a LaTeX.

Aunque R se utiliza con mayor frecuencia para computación estadística, también se puede utilizar como herramienta de computación matricial. Al igual que MATLAB, R trata el resultado de cualquier operación numérica como un vector de longitud unitaria. En términos generales, no hay escalares en R.

Guiones

Simplemente abra una sesión de R e ingrese comandos en la ventana del programa, uno tras otro; este es solo uno de los formas posibles trabajar. Un método mucho más productivo, que también es una gran ventaja de R, es la creación de scripts (programas), que luego se cargan en R y son interpretados por éste. Desde el principio de su trabajo, debe crear scripts, incluso para tareas que parezcan triviales; esto le ahorrará mucho tiempo en el futuro. Crear scripts por cualquier motivo e incluso sin un motivo especial es uno de los fundamentos de la cultura laboral en R.

Paquetes

Otra ventaja importante de R es la disponibilidad de numerosas extensiones o paquetes para él. Alguno paquetes basicos están presentes inmediatamente después de instalar R en la computadora, sin ellos el sistema simplemente no funciona (por ejemplo, un paquete llamado base, o el paquete grDevices, que controla la salida de gráficos), así como los paquetes "recomendados" (un paquete para análisis de conglomerados especializados, un paquete para el análisis de modelos no lineales (nlme y otros). Además, puede instalar cualquiera de los casi ocho mil (a mediados de 2016) paquetes disponibles en CRAN. Si tiene acceso a Internet, puede hacerlo directamente desde R usando el comando install.packages().

Enlaces

  • CRAN (Comprehensive R Archive Network) es un sistema central de almacenamiento y distribución para R y sus paquetes.