Capítulo 4 Uso básico de RStudio

4.1 ¿Qué es RStudio?: una interfaz para usar R

Para contar con más herramientas de apoyo en el uso de R emplearemos el software RStudio. Este software es una interfase - entre otras existentes como RCommander - que permite contar con una interacción más fluida con el programa R. Básicamente se trata de una máscara para visualizar el software que tiene como principales ventajas (1) el orden y (2) la visualización de los procesos que son llevados a cabo con R, todo de manera simultánea.

Interfaz del software RStudio

Imagen 4.1: Interfaz del software RStudio

Se pueden ver 4 ventanas, además de la barra de opciones en la parte superior.

  1. Ventana (1): es el editor de sintaxis: se trata del lugar donde editamos la sintaxis para posteriormente ejecutarla. Al escribir allí no sucederá nada, a no ser que se apriete algún botón para ejecutar los comandos o la tecla ctrl+enter.

  2. Ventana (2): es el “entorno de trabajo” del programa: en este lugar se muestra el conjunto de datos y los “objetos” (resultados, variables, gráficos, etc.) que se almacenan al ejecutar diferentes análisis.

  3. Ventana (3) tiene varias sub pestañas: (i) la pestaña files permite ver el historial de archivos trabajados con el programa; (ii) la pestaña plots permite visualizar los gráficos que se generen; (iii) la pestaña packages permite ver los paquetes descargados y guardados en el disco duro así como gestionar su instalación o actualización; (iv) la ventana help permite acceder al CRAN - Comprehensive R Archive Network (siempre que se cuente con conexión a Internet), página oficial del software que ofrece diferentes recursos para el programa: manuales para el usuario, cursos on line, información general, descarga de paquetes, información de los paquetes instalados, etc. Esta última pestaña es bastante útil: empleando el motor de búsqueda se accede de manera rápida a manuales de uso de los diferentes paquetes (y sus funciones) instalados en el computador (esto no requiere conexión a Internet).7; (v) la ventana viewer muestra los resultados al construir reportes mediante funcionalidades tipo rmarkdown.

  4. Ventana (4): es la consola. Corresponde a lo que sería el software R en su versión básica. Allí el software ejecuta las operaciones realizadas desde el editor de sintaxis.

4.2 Carpeta de trabajo y memoria temporal del programa

El software R funciona como un entorno temporal de trabajo, esto quiere decir que el usuario va agregando datos y objetos (conjuntos de datos con diferentes atributos) a una “hoja en blanco”. Hay que tener en cuenta que R trabaja con la memoria activa (RAM) del computador, por lo tanto cualquier análisis sólo mostrará la información resultante pero no permanecerá como archivo posible de utilizar de modo posterior. Es decir, si los análisis no son guardados como objetos (vectores, matrices, listas u otros tipos de objetos) se deberán repetir las instrucciones para obtener otra vez el resultado.

Dado que R opera como un espacio temporal y autónomo de trabajo, también es preciso indicarle en qué parte del disco duro del computador están los archivos a utilizar Para evitar el engorroso procedimiento de indicar todo el tiempo las rutas de acceso a los archivos (elementos del tipo: C:\escritorio\Curso R\base_datos.xlsx) es posible establecer una carpeta de trabajo: esto es, una carpeta predeterminada donde el programa buscará los archivos a ejecutar y guardará los archivos a conservar con cambios.

Existen dos alternativas para definir la carpeta de trabajo. La primera es emplear el siguiente comando:8

setwd("ruta de acceso a la carpeta especificada")

Otra forma de hacerlo es mediante la botonera superior; presionando el botón Session, luego Set Working Directory, Choose Directory y en la pestaña examinar se selecciona la carpeta a utilizar.

Secuencia de botones para establecer carpeta de trabajo

Imagen 4.2: Secuencia de botones para establecer carpeta de trabajo

Todas las operaciones de R - sean indicadas vía sintaxis o botones - son ejecutadas según comando computacional que es visualizado en la consola. La ejecución de comandos entrega diferentes señales respecto a su funcionamiento. Por ejemplo, mientras se está ejecutando un comando, el programa muestra un signo “Stop!” en la esquina superior derecha de la consola (como se ve en la imagen). Eso indica que el programa está ocupado ejecutando una acción. Si se presiona tal símbolo, se cancelará la operación en curso.

Consola en ejecución de instrucciones

Imagen 4.3: Consola en ejecución de instrucciones

Una vez ejecutado el comando, debiera observarse el siguiente resultado en la consola. Cuando esté todo en azul (o con otro color diferente al básico de la sintaxis dependiendo de la configuración de colores de RStudio) indica que el comando fue correctamente ejecutado. Asimismo, el signo >| con la barra parpadeando, indica que R está listo para procesar nuevas instrucciones. En el siguiente ejemplo (imagen 4.4) se muestra el establecimiento de una carpeta de trabajo cuyo desarrollo ha sido exitosamente ejecutado.

Consola de R lista para ejecutar instrucciones

Imagen 4.4: Consola de R lista para ejecutar instrucciones

4.3 Elementos fundamentales del uso de sintaxis en RStudio

R es un lenguaje de programación En el caso de la versión básica del software, así como de la interfaz RStudio, el usuario interactuará con el programa mediante códigos. La sintaxis es un conjunto de códigos. Su uso en R es bastante intuitivo y sigue un patrón lógico. De modo general el lenguaje de programación de R (o sintaxis) sigue la siguiente estructura básica:

Ejercicio 4.1

comando (datos a utilizar)

El ejemplo indicado es una operación simple. Al aumentar la complejidad de los análisis la especificación de los comandos irá requiriendo una mayor cantidad de información. Por ejemplo, para construir una tabla de frecuencias de una variable ubicada en una base de datos se utiliza el siguiente comando, que le indica al software el conjunto de datos y variable específica a analizar (ejercicio 4.2):

Ejercicio 4.2

table (base de datos, variable)

En un sentido global, como se observa en la imagen 4.5, la estructura general de una sintaxis puede resumirse como sigue: a un objeto dado se le asigna el resultado de una función, que a su vez se ejecuta sobre un conjunto de datos especificado, con una serie de configuraciones particulares. En este caso, la sintaxis de la imagen es ficticia pero nos servirá con un propósito pedagógico. Si se lee de izquierda a derecha, la línea de comando puede explicarse como sigue:

  • Primero se indica un objeto a crear, con un nombre arbitrario, definido por nosotros.
  • Luego se indica el asignador, que expresa que todo lo que esté a la derecha de la flecha se guardará en el objeto creado.
  • Luego viene la función que en este caso permite leer archivos tipo Microsoft Excel. Luego de la función se abre un paréntesis que contiene los argumentos, es decir, instrucciones que especifican ciertos detalles de lo que queramos la función realice.
    1. El primer argumento por lo general indica la información a leer, en este caso indica un archivo de tipo Excel (extensión xlsx).
    2. El segundo argumento indica la hoja del archivo a leer.
    3. El tercer argumento indica qué columnas se leerán de forma específica (en este caso, las primeras diez).
Estructura básica de una sintaxis de R

Imagen 4.5: Estructura básica de una sintaxis de R

Ahora bien, escribir tales instrucciones en el editor de sintaxis permite contar con una sintaxis editable que no se ejecutará de manera automática como operaciones computacionales (cuestión que sí sucede al escribir sintaxis directamente sobre la consola). Para ejecutar una sintaxis se debe seleccionar con el cursor - como cuando se busca copiar un texto - el trozo de código (code chunk en inglés) que interesa utilizar para luego:

  1. Usando la botonera superior, apretar con el cursor del mouse el botón “Run”.
  2. Apretar la combinación de teclas ctrl + enter.
Formas de ejecutar una sintaxis en RStudio

Imagen 4.6: Formas de ejecutar una sintaxis en RStudio

Otra opción es ejecutar una sola línea de código. Para esto se posiciona el cursor sobre la línea que interesa ejecutar (en cualquier parte de ella) y se aplica algunas de las dos operaciones ya indicadas.

4.4 Manejo básico de la sintaxis de R: creación de objetos, inclusión de anotaciones y definición de secciones

Dado que el programa funciona en la memoria temporal del computador - memoria RAM - una vez que se ejecuta un proceso y se cierra el programa la operación y su resultado desaparecerán si no han sido almacenadas de alguna forma en el disco duro.

Para entender esto de manera práctica se pondrá un ejemplo con el comando más básico que se puede utilizar. Este comando consiste en crear un objeto y asignarle un dato numérico. El objetivo del ejercicio 4.1 es darle el valor 10 a X, luego pedirle a R que entregue el valor de X, para después cambiar el valor de X a 5. Para cualquiera de tales operaciones, se escribe una letra (en este caso es una X, pero podría ser cualquier otra letra) y con el asignador <- se le asigna el valor numérico deseado.

Ejercicio 4.3

#Asignación del valor "10" al objeto "X"
X <- 10
X
## [1] 10
#Cambiar el valor de X: cambiar el "10" por un "5"
X <- 5
X
## [1] 5

Como se observa en el ejemplo, si luego de efectuar una asignación se ejecuta el objeto creado (“X”), se obtendrá como resultado el último valor almacenado. De tal modo, se entiende que un objeto es un elemento computacional que puede almacenarse en el programa para ser usado en análisis posteriores. Además, debe destacarse que al ejecutar una operación esta no es permanente: puede ser transformada si se sobreescribe la información.9 La estructura de la sintaxis computacional es bastante flexible. Sólo a modo de ejemplo, puede ejecutarse - ejercicio 4.4 - una asignación de un valor a un objeto alterando el orden de los elementos. Vale la pena destacar que el orden de los elementos no altera el resultado, mientras el asignador apunte desde los valores que nos interesa guardar hacia el nombre de un objeto a crear (o previamente existente). No obstante ello, por una cuestión de orden sugerimos la estructura de sintaxis objeto <- valores, con el asignador apuntando hacia la izquierda de la pantalla.

Ejercicio 4.4

#Asignación del valor "5" al objeto "Y"
5 -> Y
Y
## [1] 5

Una cuestión importante es que el editor de sintaxis acepta la inclusión de comentarios en el cuerpo de los comandos. Como se ve en la imagen, al anteponer un signo gato (#) antes de un comando, este se pone de un color diferente a los códigos que representan instrucciones válidas (en la visualización por defecto de RStudio, el color sera automáticamente verde).

¿Para qué sirve esto? Toda línea que esté con un signo gato antepuesto el programa la ignorará como comando de R. Esto permite incluir notas que indiquen lo que se está haciendo, mensajes o ayudas de memoria. Esto es relevante sobre todo en el contexto de trabajos que toman varios días - en los que será difícil recordar todo lo efectuado o probado - y en contextos de investigaciones colectivas donde se intercambian propuestas de análisis con otros investigadores.

Así, un aspecto bastante útil de la funcionalidad de comentarios es que permite separar mediante encabezados cualquier sintaxis. Como se ve en la siguiente imagen, si se indica el signo # y el título se encierra entre al menos cuatro guiones a cada lado, el programa considera tal formato como si se tratara de un título; esto permite que usando el explorador de la sintaxis quien investiga pueda navegar de manera más rápida por las diferentes secciones de una sintaxis.

Explorador de secciones de una sintaxis de RStudio

Imagen 4.7: Explorador de secciones de una sintaxis de RStudio

4.5 Tipos de objetos en R (vectores)

Si los objetos creados contienen un conjunto de datos del mismo tipo, para el lenguaje del software (lenguaje de la informática) esto es un vector.10 Aplicado al ámbito de las ciencias sociales se trata de una variable. Así, en R las variables (o vectores) pueden ser de 4 tipos; el tipo de variable depende del tipo de valores que se le asigna a cada objeto:

  1. numeric: valores numéricos, incluye decimales.
  2. integer: números enteros, no incluye decimales.
  3. character valores alfanuméricos, es decir, letras, números y signos mezclados.
  4. logical: valores lógicos, TRUE o FALSE.

De esta forma si una variable es numérica, tendrá asignado números; en caso de ser una variable de tipo cadena (character) los valores se deben ingresar entre comillas (“ejemplo”), y en caso de ser lógica sus valores serán alguna de las opciones TRUE o FALSE.

Hasta ahora sólo se ha explicado cómo asignar un valor singular a un objeto de R. Para ingresar más de un valor en un vector se deben indicar los elementos a almacenar entre paréntesis y separados por comas, antecedidos de la función concatenar, que se ejecuta anteponiendo una c al conjunto de objetos a agrupar.11 Utilizando la función concatenar c() se puede crear un objeto que agrupe un conjunto de datos (un vector). En este caso se construirá una variable Edad con el siguiente conjunto de datos (deben separarse por comas): 15, 12, 27, 55, 63, 63, 24,21, 70. En este caso será una variable numérica:

Ejercicio 4.5

#Concatenar valores para crear un vector de más de un sólo valor
edad <- c(15, 12, 27, 55, 63, 63, 24,21, 70)

Al ejecutar el comando se observa automáticamente el nuevo objeto en el entorno de R (junto con los objetos x e y ya creados).

Entorno de trabajo de RStudio con objetos

Imagen 4.8: Entorno de trabajo de RStudio con objetos

Como se observa, el programa indica que el objeto creado edad es un variable o vector de tipo numérico (numeric) de una sola dimensión y que tiene nueve casos ( [1:9] ).12

En el ejercicio 4.3 se construyó un objeto que consideraremos como una variable resultante de, por ejemplo, haber aplicado una breve encuesta a los estudiantes de una clase. Ahora bien, usando el comando table (edad) - ejercicio 4.5 (continuación) podemos construir una tabla de frecuencias de los valores; el número debajo del caso indica la frecuencia absoluta de ocurrencia de cada valor.

Ejercicio 4.5 (continuación)

table(edad)
## edad
## 12 15 21 24 27 55 63 70 
##  1  1  1  1  1  1  2  1

En el lenguaje computacional de R las variables se denominan “vectores”. A continuación se observa la creación de tres vectores, uno con números enteros, otro con números reales (incluye decimales y negativos) y un tercero con caracteres alfabéticos.

Ejercicio 4.6

#Vector numérico (función concatenar)
a <- c(4, 3, 5) 

#Vector numérico (función concatenar)
b <- c(1.1, 4.67, 5.1, 6.8) 

#Vector alfanumérico (función concatenar)
letras <- c("hombre", "mujer", "no sabe/no responde")

En el entorno de trabajo se observa la presencia de tres nuevas variables, con su respectiva cantidad de casos y el tipo de vector asignado por el programa.

Información de objetos en entorno de trabajo de RStudio

Imagen 4.9: Información de objetos en entorno de trabajo de RStudio

4.6 Construcción de una base de datos

A continuación se construirá la primera base de datos a partir de tres variables. Para esto, como se observa en los siguientes comandos, se parte por la construcción de tres variables de 9 casos cada una:

  1. Género. Variable nominal con valores 1 y 2, que representan las categorías de respuesta “hombre” y “mujer”.
  2. Ingreso. Variable de razón con valores arbitrarios de ingreso monetario.
  3. Acuerdo en torno al aborto libre. Variable ordinal tipo escala Likert con valores 1, 2, 3, 4 o 5, que representan las categorías “nada de acuerdo”, “un poco de acuerdo”, “ni de acuerdo ni en desacuerdo”, “bastante de acuerdo”, “muy de acuerdo”.

Ejercicio 4.7

#Creación de las variables: todas tienen la misma cantidad de casos

genero <- c(1,1,2,1,2,2,2,1,2)

ingreso <- c(100000,300000,500000,340000,300000,500000,650000,410000,750000)

acuerdo <- c(1,1,3,2,4,1,5,3,2)

A partir de las variables ya creadas se puede construir una base de datos. Para esto se utiliza el comando data.frame asignando su resultado al objeto aborto que contendrá la base de datos construida.

Si la ejecución del comando es exitosa se verá un nuevo objeto de tipo data en el entorno de trabajo, donde además se indicará la dimensión de la base de datos (cantidad de casos y variables).

Ejercicio 4.7 (continuación)

#Creación de base de datos a partir de variables previamente creadas
#Se asigna el resultado al objeto "aborto"
aborto <- data.frame(genero, ingreso, acuerdo) 
Entorno de trabajo con variables y base de datos creadas

Imagen 4.10: Entorno de trabajo con variables y base de datos creadas

Posteriormente se puede visualizar la base datos de dos maneras: utilizando el comando View o presionando un botón que se encuentra al lado del objeto base de datos en el entorno de trabajo del software. En el siguiente código se explicita la primera forma y en la imagen posterior la segunda.

Ejercicio 4.8

View(aborto) #Comando para visualizar base vía sintaxis (o hacer click en entorno)
Uso de botón para visualizar base de datos

Imagen 4.11: Uso de botón para visualizar base de datos

Luego de construida esta base de datos interesa guardarla como un archivo reutilizable para posteriores análisis. Para ello es útil el comando save: indicando el nombre del objeto a guardar como archivo y definiendo también el nombre del archivo. Como se ve en la siguiente línea de comando, el nombre del archivo resultante se indica con el argumento file = "nombre_archivo.extensión" (el nombre del archivo va entre comillas).

Ejercicio 4.9

save(aborto, file = "aborto.RData") #Se indica primero el objeto a guardar 
                                   #y luego el nombre del archivo, entre comillas.

Ejecutando tal comando, se creará un nuevo archivo en la carpeta que hayamos indicado como carpeta de trabajo. Como se ve en la imagen a continuación, este archivo debería ser reconocido como un archivo de formato RStudio; se observa que es un archivo recién creado gracias a la información proporcionada por la columna Fecha de modificación.

Carpeta de trabajo con base de datos guardada

Imagen 4.12: Carpeta de trabajo con base de datos guardada

Este archivo es la base de datos recién construida pero almacenada como archivo de formato R en el disco duro, específicamente en la carpeta de trabajo fijada en la sesión de R. Este archivo puede usarse para posteriores análisis, puede ser enviado a otras personas, etc.

Finalmente, se muestran dos maneras para “limpiar” el entorno de trabajo. Esto resulta útil pues luego de hacer múltiples cálculos exploratorios, mientras se depura un esquema de análisis, el entorno de trabajo se irá llenando paulatinamente con objetos que no sirven para continuar trabajando y sólo pueden confundir en los pasos posteriores del análisis.

Nuevamente, para limpiar el entorno de trabajo existen dos maneras:

  1. La primera es vía sintaxis, con dos comandos específicos que se detallan a continuación:
    1. El primero permite eliminar elementos específicos y,
    2. El segundo permite vaciar totalmente el entorno de trabajo.
  2. La segunda forma es utilizando un botón existente en la botonera superior del entorno de trabajo (con forma de escoba) que permite borrar todos los elementos del entorno de trabajo, que se detalla en la siguiente imagen.

Ejercicio 4.10

#Comando para eliminar elementos especificos, aquí se elimina 
#la base creada.
remove(aborto) 

#Comando para limpiar todos los objetos del entorno de trabajo.
rm(list = ls()) 
Uso de botón para limpiar entorno de trabajo

Imagen 4.13: Uso de botón para limpiar entorno de trabajo

Como se ve en la última imagen, ya sea ejecutando el comando rm(list = ls()) o apretando el botón indicado, se puede limpiar completamente el entorno de trabajo.


  1. Al trabajar desde el editor de sintaxis, si se escribe el comando help() poniendo entre los paréntesis algún comando o palabra clave (por ejemplo help(setwd)) se visualizará la ayuda que brinda el software en relación a la búsqueda especificada.

  2. Para efectos de este manual, quienes busquen replicar estos ejemplos deben crear una carpeta en su computador definiéndola como carpeta de trabajo para RStudio. Allí deben descargar y guardar el material a utilizar.Tales elementos se pueden encontrar en la siguiente carpeta en línea almacenada en un repositorio Github

  3. Se puede ver que R funciona mediante la creación de objetos que representan un dato o un conjunto de datos. En este caso el valor es simple (un valor numérico) pero también puede tratarse de un objeto que almacene datos de una variable que refiera a categorías sociales tales como Grupo Socio-económico o Género, de un conjunto amplio de casos.

  4. En el ámbito de la informática, un vector (también conocido como matriz) es una zona de almacenamiento contiguo que alberga elementos de un mismo tipo. Puede entenderse como una serie de elementos ordenados en filas o columnas. El vector ofrece una estructura que facilita el acceso a los datos para su manejo computacional. Mayores detalles de esta definición en Wikipedia.

  5. Para nombrar a los objetos es importante saber que estos deben empezar con una letra, aunque puede contener dígitos y puntos (.). Además, se debe tener en cuenta que R diferencia entre mayúsculas y minúsculas.

  6. También se puede ejecutar el comando atributtes(edad) para conocer tal información. En el mismo sentido, el comando class(edad) sirve para inspeccionar qué tipo de variable estamos considerando.