INTRODUCIÓN AL R Y AL R- STUDIO

  1. INTRODUCIÓN AL  R    Y AL R- STUDIO


    1. Introducción al entorno R

    El programa R puede entenderse como un lenguaje de programación, como un potente software de análisis estadísticos o incluso como un generador de gráficos. Cualquiera de los tres significados es compatible con una definición del R. Estos apuntes de  ofrecen al lector inte­resado en programación, los conceptos básicos y necesarios de la sintaxis de R que le permitirán trabajar en un entorno para su uso con interfaces de có­digos[1]. Si bien es cierto que existen interfaces gráficas (R Commander) que facilitan el uso de R como software para el análisis de datos, no es menos cierto que la adquisición de destrezas en el manejo de unas normas de sintaxis básicas permitirán al usuario de R beneficiarse aún más de la potencia y de las ventajas que ofrece este entorno (Elousa, 2010).
    Podemos definir R como un entorno en el que se aplican los métodos estadísticos de análisis de datos. En este entorno, tal como se indica en la web del programa, www.r-project.org, podemos encontrar los siguientes componentes:

    Ø  Herramientas de lectura, importación, gestión y almacenamiento de datos.
    Ø  Funciones y operadores diseñados para actuar directamente sobre vectores o matrices.
    Ø  Una gran colección, coherente e integrada, de herramientas para el análisis de datos.
    Ø  Procedimientos gráficos para el análisis y visualización de datos, ya sea en pantalla o en papel.
    Ø  Un completo y bien desarrollado lenguaje de programación, simple y eficiente, que incluye gran cantidad de funciones predefinidas, instrucciones condicionales, bucles, posibilidad de definir funciones recursivas y procedimientos avanzados de entrada y salida, con la posibilidad de importar o exportar datos a un gran número de aplicaciones.
    Ø  Un intérprete de comandos para la aplicación efectiva de todas estas herramientas.  A este intérprete es posible acceder de varias formas:
    ·         De modo interactivo a través de una consola.
    ·         Lanzando un script (que podemos traducir como guión) que consiste básicamente en un archivo en el que el usuario ha introducido todos los comandos que desea ejecutar.
    ·         A través de diversas interfaces gráficas de usuario (GUI).

    1.1 Instalación de R y R‐Studio

    Para la instalación del programa R y del paquete R-Commander, con su navegador abra la página www.r-project.org. Marque el enlace Download R como se ilustra.
    Figura Nº 1



    Figura Nº 2


    Una vez terminada la instalación del programa R, ejecútelo, el programa se abrirá con una ventana como se muestra, esta ventana se conoce como la consola de R, donde se tiene que escribir los comandos.
    Figura Nº 3

    1.2 Instalación de R Studio.

    Hoy en día, la mejor plataforma para utilizar R (sobre todo para el principiante) es RStudio1. RStudio es un IDE[2] muy popular y que ofrece un entorno prácticamente idéntico en todos los sistemas operativos para utilizar R.
    RStudio, por defecto, tiene cuatro paneles. El panel inferior izquierdo es una consola de R. En ella se puede escribir y ejecutar código. R muestra también en ella los resultados obtenidos.
    Figura Nº 4


    El panel superior izquierdo es un editor de código. Los ficheros que se abran y se editen aparecerán en él dentro de sus correspondientes pestañas. Es imperativo aprender a usar algunos de los atajos de teclado más comunes. Por ejemplo, Control + R  ejecuta la línea de código en la que se sitúa el cursor.
    Los paneles de la derecha son menos importantes. El superior contiene un listado de las variables en el entorno y un histórico de comandos ejecutados. El inferior contiene varias pestañas; las que más se usan son:
    Ø  Files: da acceso al sistema de ficheros del disco duro
    Ø  Plots: aloja los gráficos que cree R
    Ø  Help: muestra la página de ayuda de las funciones cuando la solicite el usuario
    Ø  Packages: Descarga e instalación de paquetes

    2. Ventajas  y desventajas de  R (R Studio)

    Entre  las ventajas podemos mencionar:
    Ø  Es software libre y por tanto su coste es nulo y el número de paquetes, lo que ha crecido en el último año a la nada despreciable velocidad de aproximadamente 2 paquetes diarios.

    Ø  Es multiplataforma: existen versiones para Linux, Mac y Windows. Los procedimientos y análisis desarrollados en una plataforma son inmediatamente ejecutables en otra.
    Ø  Implementa una enorme cantidad de métodos estadísticos, desde los más clásicos a los más modernos. Los métodos se organizan en librerías cuyo número se encuentra en constante crecimiento.
    Ø  Dispone de una enorme capacidad para combinar, de manera simple, métodos de análisis estándar (regresión, análisis de cluster, análisis de series temporales) con análisis desarrollados ad hoc para una situación específica.

    Ø  Capacidad para acceder a datos en múltiples formatos. Dispone de librerías para leer datos desde SPSS, SAS, Access, MySQL, Excel,... Asimismo permite también la generación de informes de resultados en diversos formatos.
    Ø  Enorme capacidad para manipular y /o modificar datos y funciones.
    Ø  Generación de gráficos de alta calidad.
    Ø  Existencia de una comunidad de usuarios muy activa, en la que participan estadísticos de renombre.
    Ø  Amplia disponibilidad de documentación, tanto en internet como en libros publicados por editoriales de prestigio (Springer, Wiley).
    Ø  Facilidad de integración con actividades de formación en técnicas y métodos estadísticos en todos los ámbitos del conocimiento. Su uso es cada vez más generalizado en las universidades, lo que implica que las nuevas generaciones de profesionales ya salen al mercado laboral con formación específica en el manejo de este programa.
    Ø  En particular, su uso en la docencia tiene la ventaja de que no es necesario que el estudiante adquiera licencias para su uso, por lo que cualquier alumno puede instalar R en su ordenador personal y desarrollar tareas, trabajos, etc. utilizando este programa. Asimismo, una vez que el estudiante se gradúe y abandone la universidad, podrá seguir utilizando R en cualquier ámbito profesional o de desarrollo.

    Ø  Existencia de extensiones específicas para nuevas áreas como bioinformática, geo estadística, modelos gráficos o análisis de mercados financieros[3].
    Entre  las desventajas podemos mencionar:
    Ø  Suele señalarse como principal desventaja de R el hecho de que el paquete base no dispone de una interfaz amigable para el usuario; no existe un menú principal en el que el usuario pueda acceder mediante el ratón a submenús para la lectura de datos, la ejecución de procedimientos estadísticos o la generación de gráficos. Estas tareas se llevan a cabo mediante un lenguaje de comandos que puede resultar duro de aprender para el usuario común. No obstante se han desarrollado algunas GUIs (Graphical User Interfaces) que facilitan enormemente esta tarea. En particular la interfaz R-Commander desarrollada porJohn M. Fox en la McMaster University de Canadá presenta un menú para el acceso a los comandos más habituales que, además, muestra el código que emplea R de forma que permite al usuario familiarizarse con el lenguaje.

    Ø  El código R es interpretado, no compilado, por lo que algún algoritmo puede resultar de ejecución lenta, en particular si se realizan tareas de simulación intensiva. Esto no constituye mayor problema para un uso ordinario del programa. En cualquier caso, a partir de la versión 2.14, todas las funciones y librerías de R se encuentran precompiladas, lo que acelera su ejecución de manera notable.

    Ø  No dispone de un sistema de base de datos propio, aunque sí cuenta con un formato para el almacenamiento e intercambio de datos. En cualquier caso se han desarrollado paquetes para conectar y acceder a múltiples sistemas de bases de datos (las propias de SAS o SPSS, Access, dBase, Excel, MySQL, etc ). Tiene algunas limitaciones en cuanto al uso de la memoria, que dificultan el análisis de bases de datos masivas[4]. No obstante estas limitaciones han ido desapareciendo a medida que se han ido desarrollando ordenadores con mayor capacidad (procesadores de 64 bits, más disponibilidad de memoria y de direccionamiento de la misma). En cualquier caso, salvo que el usuario deba acceder a millones de registros simultáneamente, es difícil que llegue a notar problemas con la memoria.

    Ø  No dispone de un sistema de base de datos propio, aunque sí cuenta con un formato para el almacenamiento e intercambio de datos. En cualquier caso se han desarrollado paquetes para conectar y acceder a múltiples sistemas de bases de datos (las propias de SAS o SPSS, Access, dBase, Excel, MySQL, . . . ). Tiene algunas limitaciones en cuanto al uso de la memoria, que dificultan el análisis de bases de datos masivas5. No obstante estas limitaciones han ido desapareciendo a medida que se han ido desarrollando ordenadores con mayor capacidad (procesadores de 64 bits, más disponibilidad de memoria y de direccionamiento de la misma).  En cualquier caso, salvo que el usuario deba acceder a millones de registros simultáneamente, es difícil que llegue a notar problemas con la memoria.

    Ø   En algún caso las nuevas librerías que se incorporan a R pueden tener errores o fallos de implementación. Estos fallos, no obstante, suelen ser detectados por los usuarios, informados a los desarrolladores de las librerías y corregidos en tiempo récord. Debe señalarse, no obstante, que ningún programa (incluso los comerciales) está exento de fallos y el proceso de revisión y corrección de fallos en programas comerciales mediante parches o actualizaciones suele ser notablemente más lento. Ello se debe a que todos los datos con los que se trabaja deben permanecer simultáneamente en memoria. No obstante es posible derivar parte de la carga de trabajo del procesamiento de datos al propio motor de la base de datos que se utiliza, mediante comandos SQL.

    Ø  A todos los puntos anteriores podemos añadir el siguiente, que será considerado por unos una ventaja y por otros un inconveniente:

    Ø   Para hacer un buen uso de R se debe tener un buen conocimiento de los métodos estadísticos. En realidad esta afirmación es cierta no sólo para R, sino para cualquier paquete estadístico. Sin embargo en la práctica programas como SPSS, Statistica o SYSTAT permiten, a través de sus  menús, que el usuario pueda aplicar casi cualquier procedimiento estadístico –sea o no adecuado para sus datos o su problema– sin apenas esfuerzo y obtenga páginas de resultados que muchas veces es incapaz de interpretar. R es bastante más atento en sus salidas de resultados y, cuando se han de aplicar modelos de cierta complejidad, la mayoría de las veces el usuario se verá obligado a especificar exactamente qué es lo que quiere hacer, lo que implica buen nivel de conocimiento de los problemas abordados.

    R posee muchas funciones para análisis estadísticos y gráficos; estos últimos pueden ser visualizados de manera inmediata en su propia ventana y ser guardados en varios formatos (jpg,  png, bmp, ps, pdf, emf, pictex, xfig; los formatos disponibles dependen del sistema operativo).
    Los resultados de análisis estadísticos se muestran en la pantalla, y algunos resultados intermedios (como valores P-, coeficientes de regresión, residuales,. . .) se pueden guardar, exportar a un archivo, o ser utilizados en análisis posteriores. El lenguaje R permite al usuario, por ejemplo, programar bucles (’loops’ en inglés) para analizar conjuntos sucesivos de datos. También es posible combinar en un solo programa diferentes funciones estadísticas para realizar análisis más complejos. Usuarios de R tienen a su disponibilidad un gran número de programas escritos para S y disponibles en la red;[5] la mayoría de estos pueden ser utilizados directamente con R.
    Al principio, R puede parecer demasiado complejo para el usuario principiante. Esto no es necesariamente cierto, porque una de las características más sobresalientes de R es su enorme flexibilidad.
    Mientras que programas más clásicos muestran directamente los resultados de un análisis, R guarda estos resultados como un “objeto”, de tal manera que se puede hacer un análisis sin necesidad de mostrar su resultado inmediatamente. Esto puede ser un poco extraño para el usuario, pero esta característica suele ser muy útil. De hecho, el usuario puede extraer solo aquella parte de los resultados que le interesa. Por ejemplo, si uno corre una serie de 20 regresiones y quiere comparar los coeficientes de regresión, R le puede mostrar únicamente los coeficientes estimados: de esta manera los resultados se pueden resumir en una sola línea, mientras que un programa clásico le puede abrir 20 ventanas de resultados. Más adelante, veremos otros ejemplos que ilustran y comparan la flexibilidad de R con programas de estadística más tradicionales ( Paradis, 2010).

    3. R como  un sistema de ventanas

    La forma más conveniente de usar R es en una estación de trabajo con un sistema de ventanas. Estas notas están escritas pensando en usuarios de estas características. En particular nos referiremos ocasionalmente a la utilización de R en un sistema X-Windows, aunque normalmente se pueden aplicar a cualquier implementación del entorno R.

     

    3.1 Utilización interactiva de R

    Cuando R espera la entrada de órdenes, presenta un símbolo para indicarlo. El símbolo predeterminado es ‘>’, que en UNIX puede coincidir con el símbolo del sistema, por lo que puede parecer que no sucede nada. Si ese es el caso es posible modificar este símbolo en R.

    3.2 Programas relacionados. Documentación

    R puede definirse como una nueva implementación del lenguaje S desarrollado en AT&T por Rick Becker, John Chambers y Allan Wilks. Muchos de los libros y manuales sobre S son ´utiles para R. La referencia básica es The New S Language: A Programming Environment for Data Analysis and Graphics de Richard A. Becker, John M. Chambers and Allan R. Wilks. Las características de la versión de agosto de 1991 de S están recogidas en Statistical Models  in S editado por John M. Chambers y Trevor J. Hastie. V´ease Apendice F [Referencias],
    página 100, para referencias concretas.
    1.3 Estadística con R
    En la introducción a R no se ha mencionado la palabra estad´ıstica, sin embargo muchas personas utilizan R como un sistema estad´ıstico. Nosotros preferimos describirlo como un entorno en el que se han implementado muchas técnicas estadísticas, tanto clásicas como modernas. Algunas est´an incluidas en el entorno base de R y otras se acompañan en forma de bibliotecas (packages). El hecho de distinguir entre ambos conceptos es fundamentalmente una cuesti´on hist´orica. Junto con R se incluyen ocho bibliotecas (llamadas bibliotecas est´andar) pero otras muchas est´an disponibles a través de Internet en CRAN (http://www.r-project.org).
    Como hemos indicado, muchas técnicas estadísticas, desde las clásicas hasta la última metodología, están disponibles en R, pero los usuarios necesitarán estar dispuestos a trabajar un poco para poder encontrarlas.
    Existe una diferencia fundamental en la filosofía que subyace en R (o S) y la de otros sistemas estadísticos. En R, un análisis estadístico se realiza en una serie de pasos, con unos resultados intermedios que se van almacenando en objetos, para ser observados o analizados posteriormente, produciendo unas salidas mínimas.

    4. Objetos – Tipos (Vector, Array, Matriz, Factor, Serie temporal, Lista, Data frame)

    4.1 Objetos

    En términos genéricos, todos los elementos que maneja R son objetos: un valor numérico es un objeto, un vector es un objeto, una función es un objeto, una base de datos es un objeto, un gráfico es un objeto, etc. Para realizar un uso eficiente de R es preciso entender y aprender a manipular bien las distintas clases de objetos que maneja el programa. En esta sección nos vamos a ocupar particularmente de aquellos objetos que R utiliza para representar datos: valores, vectores, matrices, dataframes, series temporales y listas.
    R utiliza la programación orientada a objetos. Ello significa que una misma función hace cosas distintas según la clase del objeto que recibe como argumento, pudiendo incluso no hacer nada (o producir un error) si se le pasan argumentos de una clase inadecuada (González & González, 2000).

    4.1.1 Vectores

    La función vector, que tiene dos argumentos mode y length, crea un vector cuyos elementos pueden ser de tipo numérico, lógico o carácter dependiendo del argumento especificado en mode (0, FALSE o “ ” respectivamente).
    Uso
    vector(mode = "logical", length = 0)
    Ejemplo:
    v <- vector("integer", 0)

    v # Un vector de enteros sin elementos

    ## integer(0)

    w <- vector("numeric", 3)

    w # Un vector de tres ceros

    ## [1] 0 0 0
    u <- vector("logical", 5)

    u # Un vector de 5 FALSE

    ## [1] FALSE FALSE FALSE FALSE FALSE




    [1] Interfaz es lo que conocemos en inglés como interface (“superficie de contacto”). En informática, se utiliza para nombrar a la conexión funcional entre dos sistemas, programas, dispositivos o componentes de cualquier tipo, que proporciona una comunicación de distintos niveles permitiendo el intercambio de información. Su plural es interfaces. Ejemplos de interfaces en informática son las interfaces de usuario (entre computadora y persona) como sería una pantalla o un ratón (si hablamos de hardware) o la ventana gráfica de un programa con la que interactuamos (si hablamos de software); las interfaces físicas (entre dos dispositivos) como el SCSI o el USB; o las interfaces lógicas (entre dos programas) como la API o el DOM.
    [2] Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador. La mayoría de los IDE tienen un autocompletado inteligente de código (IntelliSense). Algunos IDE contienen un compilador, un intérprete, o ambos, tales como NetBeans y Eclipse; otros no, tales como SharpDevelop y Lazarus. El límite entre un IDE y otras partes del entorno de desarrollo de software más amplio no está bien definido. Muchas veces, a los efectos de simplificar la construcción de la interfaz gráfica de usuario (GUI, por sus siglas en inglés) se integran un sistema controlador de versión y varias herramientas. Muchos IDE modernos también cuentan con un navegador de clases, un buscador de objetos y un diagrama de jerarquía de clases, para su uso con el desarrollo de software orientado a objetos.


    [3] La editorial Springer tiene una colección –UseR!– dedicada exclusivamente a R.

    [4] Ello se debe a que todos los datos con los que se trabaja deben permanecer simultáneamente en memoria. No obstante es posible derivar parte de la carga de trabajo del procesamiento de datos al propio motor de la base de datos que se utiliza, mediante comandos SQL.
    [5] Por ejemplo: http://stat.cmu.edu/S/
    0 

    Añadir un comentario



Cargando

Comentarios