Preparación para el curso
Instalación de R / RStudio
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.
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 enR
yRMedicine
con el objetivo de divulgar herramientas deR
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, enR
.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 deR
, 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 es mucho más empinada que para otros programas estadísticos (como
Stata
,SAS
oSPSS
) ¡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 enR
!
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 S
3. 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:
Una homologación en los métodos. Puedes encontrar varias funciones que supuestamente hacen exactamente lo mismo (como es el caso de
emojifont
,fontemoji
yemoGG
para graficar usando emojis).Estandarizar la notación. Algunos paquetes como aquellos del
tidyverse
(veremos más adelante) utilizanpipes
(%>%
); estos sólo funcionan en eltidyverse
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
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 eninstall R for the first time
. Finalmente, ejecuta el instalable que aparece al dar click enDownload 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).
- En el caso de Mac selecciona
Download R for (Mac) OS X
y luego eligeR-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 deCRAN
.
- 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 deR
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.
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 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.
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 RStudio
6. Te enfrentarás a una pantalla similar a esta:
6 Si decidiste no instalar RStudio salta al final de esta sección.
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
Tendrás, entonces, 4 páneles como se ve a continuación:
- El primer panel (esquina inferior izquierda) es la
Consola
. Aquí es donde se ejecutan las acciones. Prueba escribir2 + 3
en él y presiona enter. Aparece el resultado de la suma. Definitivamente,R
es la calculadora que más trabajo cuesta instalar.
- El segundo panel (esquina superior izquierda) es el panel con el
Script
. Aquí se escribe el programa pero no se ejecuta. Prueba escribir10 + 9
. ¿Ves que no pasa nada? Lo que acabas de hacer es crear un programa que, cuando se ejecute, hará la suma de10 + 9
. ¡Qué programa más aburrido! Sin embargo, no todo está perdido: presionaCTRL+Enter
(Cmd+Enter
en Mac) al final de la línea o bien da clic enRun
y verás que, en la consola, aparece la instrucción y el resultado de la misma. ElScript
es una excelente fuente para tener un historial de lo que estás haciendo.
- 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 enImport Dataset
yFrom 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 derechoExample1.
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.
- 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 deR
puedes escribir?
. Prueba teclear?plot
en la consola. El signo de interrogación es unhelp()
que muestra las instrucciones para usar una función.
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
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).
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.
8 Continuación
9 Sistema
::session_info() sessioninfo
─ 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
──────────────────────────────────────────────────────────────────────────────