1. Introducción al R

1.1. Configurar el directorio de trabajo

R funciona como un entorno temporal de trabajo, esto quiere decir que el usuario va agregando datos y objetos, pero si los análisis no son guardados se deberán repetir las instrucciones para obtener otra vez el resultado. Por esta razón, es preciso configurar una carpeta predeterminada en nuestro ordenador, donde el programa buscará los archivos a ejecutar y guardará los archivos a conservar con cambios.

Para ver nuestro lugar de trabajo actual escribimos el siguiente comando (escriba el código en la consola, ya que si lo ejecuta desde este Rmd, obtendrá el lugar donde se encuentra este archivo):

getwd() 
## [1] "C:/Users/MICHELLE/OneDrive/Escritorio/UPC/2021 - 2/SESION 3"

Si queremos cambiar de directorio de trabajo, nos dirigirnos al menú “Session” > “Set Working Directory” > “Choose Directory”. Esto abrirá una ventana emergente, donde buscaremos la carpeta en la cual vamos a trabajar, la ubicamos y seleccionamos “Open”. Para verificar el cambio volvemos a digitar la función “getwd()” en la consola.

Ahora, para fijar nuestro directorio de trabajo, vamos a emplear la función de “setwd(”“)” e insertar el url de la ubicación de tu carpeta de trabajo.

setwd("C:/Users/MICHELLE/OneDrive/Escritorio/UPC/2021 - 2/SESION 3")

1.2. Sintaxis y objetos en R

El uso de R es bastante intuitivo y sigue un patrón lógico. El lenguaje de programación R está compuesto de códigos y la combinación de estos códigos genera una sintaxis. Asimismo, R guarda la información de nuestras observaciones y variables a través de objetos.

En un sentido global, 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. Veamos el siguiente ejemplo ficticio.

Si se lee de izquierda a derecha, la línea de comando puede explicarse como sigue:

  • Primero se indica un objeto a crear, con el nombre que ustedes definan.
  • Luego se indica el asignador, que expresa que todo lo que esté a la derecha de la flecha se guardará en el objeto creado a la izquierda. El asignador puede ser “<-” o también “=”
  • Luego viene la función que en este caso permite leer archivos tipo Microsoft Excel. Como mencionamos R trabaja con funciones que están dentro de “librerías” o “paquetes” que la comunidad va desarrollando. Podemos hacer nuestras operaciones con diversas funciones, y no hay una sola forma de hacerlo. Si se trata de funciones que no están predeterminadas en R, debemos instalarlas antes con el comando “install.packages()”, y antes de ejecutarla debemos convocar el paquete con el comando “library()”
  • 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 que la función realice. Los argumentos pueden escribirse de distintas maneras y va depender de lo que queramos hacer. En nuestro ejemplo: El primer argumento indica la información a leer, en este caso indica un archivo de tipo Excel (extensión xlsx). El segundo argumento indica la hoja del archivo a leer. El tercer argumento indica qué columnas se leerán de forma específica (en este caso, las primeras diez).

Hagamos un ejemplo:

Vamos a abrir un archivo en R, utilizando la función “import” del paquete “rio”, el cual es un paquete versátil que nos permite importar datos de diversas extensiones (dta, sav, csv, xls, etc.)

Antes que todo, debemos instalar el paquete escribiendo en la consola: install.packages(“rio”)

library(rio) #Convocamos el paquete   
data=import("Mosteller.csv") #Utilizamos la función import que cree un objeto en R que contenga la base de datos del archivo "Mosteller.csv" que hemos descargado, podemos verificar la creación
class(data) #si quieren saber que clase de objeto es el que hemos creado, utilizamos la función "class" y entre paréntesis colocamos el nombre del objeto. Verán que se trata de un "data frame", es el tipo de objeto en R para las bases de datos.
## [1] "data.frame"

¿Qué otro tipo de objetos existen?

1.3. Tipos de objetos en R

Una parte clave para iniciar el manejo del programa es identificar los diversos objetos que podemos crear, manipular y utilizar. Para la definición de objetos en el R será necesario previamente tener claridad teórica sobre lo que es una variable categórica nominal, categórica ordinal, numérica discreta y numérica continua.

Para los fines de este curso se contemplarán las siguientes objetos:

Tipo de objeto Descripción
Vector numérico Vector conformado por la concatenación de números, puede representar variables numéricas continuas o discretas. Ej: 1.5 , 2.7 , 3.1. Se llamará integer cuando se traten de valores que no consideran decimales. Se llamará numeric cuando se traten de valores que consideran decimales.
Vector de factores Vector que sirve para representar variables categóricas. Pudiendo ser factores nominales u ordinales. Ej: “costa”, “sierra”, “selva”.

Se llamará character o tipo cadena cuando se traten de valores alfanuméricos, es decir, letras, números y signos mezclados. Se llamará logical cuando se traten de valores lógicos, TRUE o FALSE. | | Data frames | Son hojas de datos, estructuras similares a una matriz; sin embargo, a diferencia de estas pueden almacenar objetos de distintos tipo. Generalmente nuestras bases de datos son de este tipo (como una hoja de Excel que tiene variables numéricas, categóricas, etc). |

Los vectores numéricos se crean a través del comando concatenar “c()”. Vamos a crear un vector que contenga los montos en millones de soles del presupuesto del Estado asignado por prioridades para el 2021

Presupuesto_millones=c(9879, 33132, 20991, 690, 5392) #creamos el vector (verifiquemos en el environment)
Presupuesto_millones #invocamos el vector para visualizar su contenido
## [1]  9879 33132 20991   690  5392

Un factor nos permite representar una variable categórica nominal. Se crean a través de la función “factor()”, pero antes se crea como vector pues almacena las categorías en la forma de un vector con números discretos integrales (1,2,3,4,etc.), que son códigos de los valores de la variable y otro vector de caracteres interno que contiene las etiquetas de esos códigos. Creemos un factor con los nombres de las prioridades del presupuesto para el 2021:

Prioridad=c("reactivación", "educación", "salud", "mujer","pobreza") #primero creamos un vector
Prioridad=factor(Prioridad) #Lo convertimos en factor
Prioridad #visualizamos su contenido
## [1] reactivación educación    salud        mujer        pobreza     
## Levels: educación mujer pobreza reactivación salud

También podemos crear un factor ordinal para almacenar información de una variable categórica ordinal. Es casi la misma ruta, solo que añadiremos un comando más para convertir el factor en ordinal Creemos un factor ordinal ficticio que contenga el nivel de ejecución que el Estado ha mostrado en las categorías presupuestales correspondientes a las prioridades, donde 1=Mala, 2=Intermedia y 3= Buena.

Ejecucion=c(3,2,2,1,2) #creamos un vector numérico que registra los datos
Ejecucion=factor(Ejecucion) #Lo convertimos en factor
levels(Ejecucion)=c("Mala","Intermedia","Buena") #asignamos los niveles al factor
Ejecucion=ordered(Ejecucion) ##indicamos que se trata de un factor ordinal
Ejecucion #Visualizamos
## [1] Buena      Intermedia Intermedia Mala       Intermedia
## Levels: Mala < Intermedia < Buena

Finalmente, los data frames nos permite almacenar un conjunto de datos, es decir es una base de datos que tiene filas y columnas. En ese sentido, vamos a crear la base de datos “PP2021” que contenga todas las variables que anteriormente creamos a través de vectores y factores:

PP2021 = data.frame(Prioridad,Presupuesto_millones,Ejecucion)
PP2021 # Visualice la base de datos
##      Prioridad Presupuesto_millones  Ejecucion
## 1 reactivación                 9879      Buena
## 2    educación                33132 Intermedia
## 3        salud                20991 Intermedia
## 4        mujer                  690       Mala
## 5      pobreza                 5392 Intermedia
str(PP2021) # Visualice la estructura de la bbdd
## 'data.frame':    5 obs. of  3 variables:
##  $ Prioridad           : Factor w/ 5 levels "educación","mujer",..: 4 1 5 2 3
##  $ Presupuesto_millones: num  9879 33132 20991 690 5392
##  $ Ejecucion           : Ord.factor w/ 3 levels "Mala"<"Intermedia"<..: 3 2 2 1 2
names(PP2021) #Visualice los nombres de las variables de la bbdd
## [1] "Prioridad"            "Presupuesto_millones" "Ejecucion"