Preparación para el curso

Instalación de R / RStudio

Autores

Rodrigo Zepeda-Tello

Última actualización

October 4, 2022

Resumen
Discutimos por qué vale la pena hacer un curso de R y cómo instalar tanto R como RStudio en todas las plataformas.

1 ¿R?

Yo me enfrenté a R por primera vez hace más de 8 años cuando un grupo de investigadores con quienes trabajaba compartieron su código en R. Fue horrible. El código estaba mal comentado, elaborado sin ninguna lógica de programación (yo, según esto, ya sabía programar en ese entonces) y no funcionaba. Quizá, si ya conoces el programa, tu experiencia ha sido similar: en general cuando nos enfrentamos a R nos enfrentamos a cosas que otras personas escribieron para salir del aprieto sin mucha explicación. ¡Es lo peor del mundo porque no se entiende nada! El propósito de estas notas (¿y clase?) es dual: acompañarte en un acercamiento a R desde cero y perderle el miedo a dicho programa.

R es un programa chido de estadística. FIN.

Una de las primeras cosas que necesitamos saber es que R (por más que sus más ávidos defensores digan lo contrario) no es para todo. Si tú ya conoces otro lenguaje (sea Stata, Excel, SAS, etc) sabrás utilizar muchas de sus opciones. Estoy seguro que, de conocer uno de estos, te será muchísimo más fácil seguir sacando promedios en tu lenguaje favorito que en R, realizar regresiones lineales es probablemente más sencillo en Stata mientras que las gráficas de barras quizá te sean más simples en Excel. Lo que probablemente no sea más sencillo de hacer en otro lenguaje (salvo si tu otro lenguaje es Python, Julia ó Matlab) es realizar modelos de simulación desde cero y todo el análisis que conlleva. Para eso, R es, indiscutiblemente, una de las mejores opciones para quienes no conocen de programación1.

  • 1 Modelos de simulación más avanzados suelen hacerse en C, C++ o Fortran por su velocidad; empero, es necesario conocer más de programación.

  • Finalmente, uno de los consejos más importantes que te puedo dar es que este curso no te va a servir si no practicas. Igual que como pasa con los idiomas uno no aprende R en una semana sin practicarlo después. Mi sugerencia es que, a la vez que sigues estas notas comiences a trabajar un proyecto tuyo específico junto con el buscador de Internet de tu preferencia a la mano y empieces a usar R en él. Practica2.

  • 2 La práctica hace al maestro

  • 2 Algunas ventajas de R y cosas no tan padres

    2.1 Puntos a favor de R

    • Todo el mundo lo usa (7o lenguaje más usado según PyPl y 16 según TIOBE). Quizá éste es el punto más a favor. Si mucha gente lo conoce y lo utiliza, hay más opciones de ayuda. Los sitios de StackOverflow en inglés y en español son excelentes para pedir apoyo en R; los grupos de usuarios de Google son otra fuente muy buena así como el canal de Slack. Entre más gente usa el programa; es más fácil obtener ayuda porque seguro alguien más tuvo hace ya tiempo el mismo problema que tú.

    • Hay grupos interesantes que valen la pena mencionar: RLadies que busca promoveer la diversidad de género entre quienes usan R, RainbowR con el objetivo de promover y conectar a la banda LGBTQ+ que trabaja en R y RMedicine con el objetivo de divulgar herramientas de R específicas de medicina.

    • Todas las personas que trabajan en estadística publican sus métodos y su código en R (eso, claro, cuando publican sus métodos). Es raro encontrar un nuevo método estadístico en el mundo y que no se pueda usar, de alguna forma, en R.

    • Dentro de los lenguajes de programación R es de los más sencillos. Quienes lo hicieron realmente se preocuparon por su público (de no especialistas) y en general desarrollan para él.

    • R es gratis. Y en esta época de austeridad, cualquier ahorro es bueno.

    • Todo lo que se hace en R es público. R no tiene métodos secretos ni es una caja negra. Todo lo que hace cada una de las funciones de R, cualquiera lo puede revisar, por completo.

    • En R puedes hacer notas ¡como estas! donde guardes todo tu trabajo, reportes automatizados e incluso documentos interactivos para facilitar el análisis de datos.

    • R puede hacer gráficas bonitas:

    2.2 Puntos en contra de R

    Por supuesto, no todo es miel sobre hojuelas con R. Particularmente, algunos de los problemas con el lenguaje:

    La curva de aprendizaje de R es más empinada pero después de un rato vale la pena

    • La curva de aprendizaje es mucho más empinada que para otros programas estadísticos (como Stata, SAS o SPSS) ¡particularmente si es tu primera vez programando!

    • La mayor parte de las personas que trabajan en R no son programadores de verdad. Gran parte del código que te puedes encontrar en el mundo real está escrito con prisa para salir del aprieto sin mucha planeación, con pocos comentarios, falta de control de versiones y pocas herramientas de revisión. ¡Internet está lleno de creaturas espantosas escritas en R!

    R puede ser muy lento pero eso te da oportunidad de hacer otras cosas ;) .

    • R de ninguna manera es veloz por lo que algunos programas (lo veremos en simulación) pueden ser extremada (y dolorosamente) lentos.

    • R espera que tú sepas a priori el método estadístico que vas a seguir. ¡A veces uno no se acuerda!

    3 Bienvenidx a R, Funny-Looking Kid (sí, así se llama esta versión)

    R es un lenguaje de cómputo y un programa estadístico libre, gratuito, de programación funcional (¿qué es eso?), orientado a objetos (what??) que mutó a partir de otros dos lenguajes conocidos como Scheme y S3. El primero de estos fue desarrollado en el MIT por Sussman y Steele mientras que el segundo surgió en los laboratorios Bell4 creado por Becker, Wilks y Chambers. R nació en junio de 1995 a partir del trabajo de Ross Ihaka y Robert Gentleman5.

  • 3 De ahí que se llame R porque la R es una mejor letra que la S (todos lo sabemos) -Atte. Rodrigo, el autor de este documento.

  • 4 Mejor conocidos ahora como AT&T, la compañía celular que nunca tiene señal

  • 5 Sus nombres empiezan con la letra R ¿coincidencia?

  • Desde su creación, la mayor parte del desarrollo de R ha sido trabajo completamente voluntario de la Fundación R, del equipo de R Core y de miles de usuarios que han creado funciones específicas para R conocidas como paquetes (packages). Actualmente el repositorio más importante de R, CRAN, contiene 18688 paquetes con distintas funciones para hacer ¡lo que quieras!

    Como todo el trabajo en R es voluntario hace falta:

    1. Una homologación en los métodos. Puedes encontrar varias funciones que supuestamente hacen exactamente lo mismo (como es el caso de emojifont, fontemoji y emoGG para graficar usando emojis).

    2. Estandarizar la notación. Algunos paquetes como aquellos del tidyverse (veremos más adelante) utilizan pipes (%>%); estos sólo funcionan en el tidyverse pero no fuera del mismo.

    Sin embargo, también es una gran ventaja que sean los usuarios de R quienes guían su desarrollo. El lenguaje va mutando según peticiones de las personas que lo usan. Si hay algo que te gustaría R tuviera y aún no existe ¡lo puedes proponer!

    4 Instalación de R

    Oficialmente, la página de R es de las páginas más feas del mundo. ¡No te dejes llevar por las apariencias!

    A lo largo de estas notas estaré trabajando con: R version 4.2.1 (2022-06-23) Funny-Looking Kid. La más reciente versión de R la puedes encontrar en CRAN. Para ello ve al sitio y selecciona tu plataforma.

    • En el caso de Windows da clic en Download R for Windows y luego en install R for the first time. Finalmente, ejecuta el instalable que aparece al dar click en Download R 4.2.1 for Windows . Específicamente si tienes la opción de elegir necesitas el de 64 bits (ver nota si tu computadora es mayor a 6 años).
    Nota usuarios de Windows

    En general las computadoras actuales son de 64 bits. Sin embargo, si tienes una computadora suficientemente vieja puede ser que ésta sea de 32 bits en ese caso puedes descargar R pero no podrás usar RStudio.

    La forma de saber cuántos bits tiene tu computadora Windows es yendo a Configuración > Sistema > Acerca de como indican estas instrucciones de Microsoft

    • En el caso de Mac selecciona Download R for (Mac) OS X y luego elige R-4.2.1.pkg. En Mac puede que necesites instalar adicionalmente XQuartz (según tu versión de Mac). Si tu Mac es una versión antigua (mayor a 6 años), sigue las instrucciones específicas de CRAN.
    Nota usuarios de Mac

    En algunas Mac, al abir R, aparece el siguiente mensaje de advertencia:

    During startup - Warning messages: 1: Setting LC_CTYPE failed [...]

    para solucionarlo ve a Aplicaciones y abre Terminal. Copia y pega en ella el siguiente texto:

    defaults write org.R-project.R force.LANG en_US.UTF-8

    Da enter, cierra la Terminal y reinicia R.

    • En el caso de Linux al elegir Download R for Linux tendrás la opción de buscar tu distribución específica. Al elegirla, aparecerán instrucciones para tu terminal de comandos; síguelas. En el caso de Linux, según los paquetes de R que elijamos instalar en la computadora requerirás instalar paquetería adicional para tu distribución de Linux. R te informará de la paquetería necesaria conforme la requiera.
    Tip

    Si tienes problemas para instalar puedes usar Posit Cloud (antes RStudio Cloud).

    4.1 Rtools (Windows)

    RTools es una herramienta para poder instalar paquetes de R. Algunas versiones de Windows lo requieren. Entra al sitio de RTools, elige la opción que corresponde a tu versión de R (puedes verla con R.version) y descarga el instalador Rtools42 installer o rtools40-x86_64.exe según tu versión.

    5 RStudio

    RStudio es una empresa que se dedica a hacer cosas para R.

    RStudio es una interfaz gráfica (IDE) para R. Puedes pensar a R como el Bloc de Notas y a RStudio como Word. El Bloc tiene todas las capacidades que necesitas para poder escribir; empero, es muchísimo mejor trabajar tus documentos / novelas / autobiografías en Word. De la misma manera, R tiene todas las capacidades para hacer estadística y análisis de datos pero un formato horrible y RStudio se ha convertido en la más popular forma de usar R. Por supuesto que no es la única; algunas alternativas son Visual Studio Code, Eclipse con StatET y RKWard. En general es posible seguir estas notas sin que tengas RStudio pero, si es tu primera vez programando, no lo recomiendo.

    Tip

    Si ya tienes experiencia con lenguajes como Julia, Rust, Java ó alguno de los mil C que existen, no tendrás ningún problema usando el editor de tu preferencia.

    Para descargar RStudio ve a su página y da clic en Download RStudio. Baja tu pantalla hasta donde dice Installers for Supported Platforms y elige tu plataforma: Windows, Mac OS X ó tu sabor de Linux preferido de la versión Desktop gratuita. Una vez descargado el archivo, ábrelo y sigue las instrucciones que aparecen en pantalla.

    6 Primeros pasos en RStudio

    Una vez hayas instalado R y RStudio, abre RStudio6. Te enfrentarás a una pantalla similar a esta:

  • 6 Si decidiste no instalar RStudio salta al final de esta sección.

  • La primera vez que abres RStudio

    Si tu RStudio tiene sólo 3 páneles, como en mi caso, ve a la esquina superior izquierda (signo de hoja+) y elige un nuevo R Script

    Elige hoja+ o CTRL + N para crear un nuevo archivo

    Tendrás, entonces, 4 páneles como se ve a continuación:

    RStudio <3

    1. El primer panel (esquina inferior izquierda) es la Consola. Aquí es donde se ejecutan las acciones. Prueba escribir 2 + 3 en él y presiona enter. Aparece el resultado de la suma. Definitivamente, R es la calculadora que más trabajo cuesta instalar.

    La consola de R es la calculadora más difícil de instalar que existe.

    1. El segundo panel (esquina superior izquierda) es el panel con el Script. Aquí se escribe el programa pero no se ejecuta. Prueba escribir 10 + 9. ¿Ves que no pasa nada? Lo que acabas de hacer es crear un programa que, cuando se ejecute, hará la suma de 10 + 9. ¡Qué programa más aburrido! Sin embargo, no todo está perdido: presiona CTRL+Enter (Cmd+Enter en Mac) al final de la línea o bien da clic en Run y verás que, en la consola, aparece la instrucción y el resultado de la misma. El Script es una excelente fuente para tener un historial de lo que estás haciendo.

    El Script sirve para salvar las instrucciones en el orden en que las vas a ejecutar.

    1. El tercer panel contiene el ambiente. Aquí aparecerán las variables que vayamos creando. Por ahora, para poner un ejemplo, importaremos el archivo Example1.csv (con valores simulados) dando clic en Import Dataset y From Text (base). Selecciona el archivo y elige las opciones en la ventana de previsualización que hagan que se vea bien. Nota que una vez realizada la importación aparece en el panel derecho Example1. Al dar clic podrás ver la base de datos. Las bases de datos y variables que utilices durante tus análisis aparecerán en esa sección.

    El Ambiente muestra las variables (incluyendo bases de datos) que estás utilizando en este momento. A diferencia de otros programas estadísticos (o sea Stata) en R es posible tener múltiples bases de datos abiertas a la vez.

    1. Para entender mejor lo que ocurre en el último de los páneles, lo mejor es trabajar con nuestra base. Escribe en la consola plot(Example1) . En el cuarto pánel aparecerá una gráfica. El cuarto de los páneles para nosotros tendrá esa utilidad: mostrará las gráficas que hagamos así como la ayuda. Para ver la ayuda para las instrucciones de R puedes escribir ?. Prueba teclear ?plot en la consola. El signo de interrogación es un help() que muestra las instrucciones para usar una función.

    La gráfica que aparece de hacer un plot de la base de datos de ejemplo.

    El cuarto panel muestra respectivamente las gráficas y la ayuda.

    Mi sugerencia personal es que escribas todo lo que haces en el Script y que sólo utilices la consola para verificar valores. De esta manera podrás almacenar todas las instrucciones ejecutadas y volver a ellas cuando se requieran. Por último te sugiero utilizar # gatos para comentar tu código. Así, el código anterior lo podrías ver en la consola como:

    # Aquí pruebo cómo R hace las sumas
    10 + 9

    Comenta. Comenta. Comenta, por favor. Tu ser del futuro que regrese a sus archivos de R un mes después de haberlos hecho te lo agradecerá (y tu profe también).

    Finalmente y como aclaración para estas notas, el código de R aparece como:

    #Esto es código de R
    7 - 2

    Mientras que los resultados de evaluar en R se ven con []:

    [1] 5

    Así, la evaluación con su resultado se ve de la siguiente forma:

    #Esto es código de R
    7 - 2
    [1] 5

    7 Opcional: Instalación de TeamViewer

    Warning

    TeamViewer es una herramienta a usar sólo en última instancia si hay un problema que requiera que alguien del equipo docente apoye mediante acceso directo a la máquina. Los únicos tres escenarios para usar Teamviewer son los siguientes:

    1. No se puede compartir pantalla mediante la liga oficial de Zoom ni mediante ligas alternas de Zoom, Google Meets y Microsoft Teams creadas específicamente para intentar solventar el problema de compartir pantalla.

    2. Se puede compartir pantalla pero no del equipo correcto o la pantalla correcta (ejemplo se comparte pantalla pero del celular o bien se comparte la segunda pantalla de un equipo de dos pantallas).

    3. El usuario puede compartir pantalla pero no puede interactuar con su máquina (ejemplo: perdió acceso al teclado o al ratón).

    TeamViewer es una herramienta de escritorio remoto que, al compartir un usuario y password asignado le permite a otra persona operar a distancia tu computadora. En el caso extremo de que durante la clase tengamos problemas de instalación de R o RStudio que requieran soporte avanzado (donde las herramientas de videollamada interfieran con el proceso) te pedimos instalar la versión gratuita de TeamViewer.

    Una vez la descargues comparte tu ID y tu password con el docente para que pueda tener acceso a tu máquina (acceso que tú puedes monitorear desde tu pantalla y revocar en cualquier momento). Como TeamViewer le da acceso al docente a tu máquina ésta es una herramienta para uso en caso extremo sólo cuando no se puede compartir pantalla o no puedes operar en tu computadora (el teclado y el mouse no sirven, por ejemplo).

    Teamviewer es una herramienta de soporte a distancia que permite ayudar en casos extremos a resolver problemas en tu computadora.

    Una vez hayas cambiado el password de Teamviewer (dando clic en la flecha) nadie tiene acceso a tu máquina sin embargo la recomendación es desinstalarlo completamente.

    Warning

    Una vez el equipo docente haya resuelto tu problema desintala, da clic en la flecha junto a password para cambiar el password y (de ser posible) desinstala Teamviewer.

    8 Continuación

    9 Sistema

    sessioninfo::session_info()
    ─ Session info ───────────────────────────────────────────────────────────────
     setting  value
     version  R version 4.2.1 (2022-06-23)
     os       macOS Big Sur ... 10.16
     system   x86_64, darwin17.0
     ui       X11
     language (EN)
     collate  en_US.UTF-8
     ctype    en_US.UTF-8
     tz       America/Mexico_City
     date     2022-10-04
     pandoc   2.19.2 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/tools/ (via rmarkdown)
    
    ─ Packages ───────────────────────────────────────────────────────────────────
     package        * version date (UTC) lib source
     assertthat       0.2.1   2019-03-21 [1] CRAN (R 4.2.0)
     backports        1.4.1   2021-12-13 [1] CRAN (R 4.2.0)
     broom            1.0.1   2022-08-29 [1] CRAN (R 4.2.0)
     cellranger       1.1.0   2016-07-27 [1] CRAN (R 4.2.0)
     cli              3.4.0   2022-09-08 [1] CRAN (R 4.2.0)
     coda             0.19-4  2020-09-30 [1] CRAN (R 4.2.0)
     colorspace       2.0-3   2022-02-21 [1] CRAN (R 4.2.0)
     cowplot        * 1.1.1   2020-12-30 [1] CRAN (R 4.2.0)
     crayon           1.5.1   2022-03-26 [1] CRAN (R 4.2.0)
     data.table       1.14.2  2021-09-27 [1] CRAN (R 4.2.0)
     DBI              1.1.3   2022-06-18 [1] CRAN (R 4.2.0)
     dbplyr           2.2.1   2022-06-27 [1] CRAN (R 4.2.0)
     digest           0.6.29  2021-12-01 [1] CRAN (R 4.2.0)
     dplyr          * 1.0.10  2022-09-01 [1] CRAN (R 4.2.0)
     ellipsis         0.3.2   2021-04-29 [1] CRAN (R 4.2.0)
     evaluate         0.16    2022-08-09 [1] CRAN (R 4.2.0)
     fansi            1.0.3   2022-03-24 [1] CRAN (R 4.2.0)
     farver           2.1.1   2022-07-06 [1] CRAN (R 4.2.0)
     fastmap          1.1.0   2021-01-25 [1] CRAN (R 4.2.0)
     forcats        * 0.5.2   2022-08-19 [1] CRAN (R 4.2.0)
     fs               1.5.2   2021-12-08 [1] CRAN (R 4.2.0)
     gargle           1.2.1   2022-09-08 [1] CRAN (R 4.2.0)
     generics         0.1.3   2022-07-05 [1] CRAN (R 4.2.0)
     geomnet        * 0.3.1   2022-08-14 [1] Github (sctyner/geomnet@030537d)
     ggplot2        * 3.3.6   2022-05-03 [1] CRAN (R 4.2.0)
     glue             1.6.2   2022-02-24 [1] CRAN (R 4.2.0)
     googledrive      2.0.0   2021-07-08 [1] CRAN (R 4.2.0)
     googlesheets4    1.0.1   2022-08-13 [1] CRAN (R 4.2.0)
     gridExtra      * 2.3     2017-09-09 [1] CRAN (R 4.2.0)
     gtable           0.3.1   2022-09-01 [1] CRAN (R 4.2.0)
     haven            2.5.1   2022-08-22 [1] CRAN (R 4.2.0)
     hms              1.1.2   2022-08-19 [1] CRAN (R 4.2.0)
     htmltools        0.5.3   2022-07-18 [1] CRAN (R 4.2.0)
     htmlwidgets      1.5.4   2021-09-08 [1] CRAN (R 4.2.0)
     httr             1.4.4   2022-08-17 [1] CRAN (R 4.2.0)
     jsonlite         1.8.0   2022-02-22 [1] CRAN (R 4.2.0)
     knitr            1.40    2022-08-24 [1] CRAN (R 4.2.0)
     labeling         0.4.2   2020-10-20 [1] CRAN (R 4.2.0)
     latex2exp      * 0.9.5   2022-09-11 [1] CRAN (R 4.2.0)
     lattice          0.20-45 2021-09-22 [1] CRAN (R 4.2.1)
     lazyeval         0.2.2   2019-03-15 [1] CRAN (R 4.2.0)
     lifecycle        1.0.2   2022-09-09 [1] CRAN (R 4.2.0)
     lubridate        1.8.0   2021-10-07 [1] CRAN (R 4.2.0)
     magrittr         2.0.3   2022-03-30 [1] CRAN (R 4.2.0)
     modelr           0.1.9   2022-08-19 [1] CRAN (R 4.2.0)
     munsell          0.5.0   2018-06-12 [1] CRAN (R 4.2.0)
     network          1.17.2  2022-05-21 [1] CRAN (R 4.2.0)
     pillar           1.8.1   2022-08-19 [1] CRAN (R 4.2.0)
     pkgconfig        2.0.3   2019-09-22 [1] CRAN (R 4.2.0)
     plotly           4.10.0  2021-10-09 [1] CRAN (R 4.2.0)
     purrr          * 0.3.4   2020-04-17 [1] CRAN (R 4.2.0)
     R6               2.5.1   2021-08-19 [1] CRAN (R 4.2.0)
     readr          * 2.1.2   2022-01-30 [1] CRAN (R 4.2.0)
     readxl           1.4.1   2022-08-17 [1] CRAN (R 4.2.0)
     reprex           2.0.2   2022-08-17 [1] CRAN (R 4.2.0)
     rlang            1.0.5   2022-08-31 [1] CRAN (R 4.2.0)
     rmarkdown        2.16    2022-08-24 [1] CRAN (R 4.2.0)
     rstudioapi       0.14    2022-08-22 [1] CRAN (R 4.2.0)
     rvest            1.0.3   2022-08-19 [1] CRAN (R 4.2.0)
     scales           1.2.1   2022-08-20 [1] CRAN (R 4.2.0)
     sessioninfo      1.2.2   2021-12-06 [1] CRAN (R 4.2.0)
     sna              2.7     2022-06-01 [1] CRAN (R 4.2.0)
     statnet.common   4.7.0   2022-09-08 [1] CRAN (R 4.2.0)
     stringi          1.7.8   2022-07-11 [1] CRAN (R 4.2.0)
     stringr        * 1.4.1   2022-08-20 [1] CRAN (R 4.2.0)
     tibble         * 3.1.8   2022-07-22 [1] CRAN (R 4.2.0)
     tidyr          * 1.2.1   2022-09-08 [1] CRAN (R 4.2.0)
     tidyselect       1.1.2   2022-02-21 [1] CRAN (R 4.2.0)
     tidyverse      * 1.3.2   2022-07-18 [1] CRAN (R 4.2.0)
     tzdb             0.3.0   2022-03-28 [1] CRAN (R 4.2.0)
     utf8             1.2.2   2021-07-24 [1] CRAN (R 4.2.0)
     vctrs            0.4.1   2022-04-13 [1] CRAN (R 4.2.0)
     viridisLite      0.4.1   2022-08-22 [1] CRAN (R 4.2.0)
     withr            2.5.0   2022-03-03 [1] CRAN (R 4.2.0)
     xfun             0.33    2022-09-12 [1] CRAN (R 4.2.0)
     xml2             1.3.3   2021-11-30 [1] CRAN (R 4.2.0)
     yaml             2.3.5   2022-02-21 [1] CRAN (R 4.2.0)
    
     [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
    
    ──────────────────────────────────────────────────────────────────────────────