Introducción a R y RStudio para Principiantes
Introducción a R y RStudio para Principiantes
M ATERIAL EXTRA
¿Q UÉ ES R Y RS TUDIO ?, PRIMEROS
PASOS E IMPORTACIÓN DE DATOS
Material práctico
Autor:
Econ. Alexis Adonai Morales Alberto
2023
ÍNDICE
Índice
¿Qué es R? 4
¿Qué es RStudio? 5
Iniciando en R y RStudio 8
R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
RStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Tipo de operaciones 14
Suma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Resta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Multiplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
División . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Variables 15
Vectores 16
Extraer un elemento de un vector . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Matrices 17
Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Operaciones de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Suma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Resta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Multiplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Transposición, determinante e inversa de una matriz . . . . . . . . . . . . . . . . 20
Transpocisón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Determinante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Listas 23
Importación de datos 28
Comando read.delim(“clipboard”) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Lectura de archivos CSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Cargando bases CSV con el espacio previamente establecido . . . . . . . 30
Uso de botonera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Lectura de archivos DTA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Cargando bases DTA con el espacio previamente establecido . . . . . . . . 32
Uso de botonera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Lectura de archivos SPSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Cargando bases SAV (SPSS) con el espacio previamente establecido . . . 35
Uso de botonera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Lectura de archivos EXCEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Librería readxl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Librería openxlsx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Lectura de archivos DBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Cargando bases DBF con el espacio previamente establecido . . . . . . . 39
Exportación de datos 39
Creado data.frame para la elaboración de ejemplos . . . . . . . . . . . . . . . . 40
Exportar en salida .csv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figura 2: Ejemplo 1
Figura 4: Ejemplo 2
En nuestro caso seleccionaremos Windows, posteior a ello, tendremos una ventana como
la siguiente:
Posteior a ello, seleccionamos install R for the first time y en automático comenzará la
descarga del archivo .exe con el cual podrás instalar el lenguaje de R.
Para descargar RStudio nos dirigimos al siguinte enlace: https://www.rstudio.com/
products/rstudio/ donde podremos encontrar la página que enlazará con el descargador
de RStudio de codigo abierto.
Dando click en la casilla de RStudio para escritorio, tendremos 4 opciones, la cual nos
indicará las diferentes versiones y licencias de este software. La que se tendrá que elegir
es la versión gratuita de RStudio Desktop y posterior a ello descargará el ejecutable
para Windows, macOS o Linux.
En esta sección podrás encontrar todo lo relacionado con los primeros pasos de R y
RStudio, dividos en dos subtemas, en los cuales se harán diversas explicaciones del uso
de este lenguaje.
Una vez instalado R, al ejecutarlo encontrarás un interfaz muy similar a lo que es CMD
o símbolo de sistema, en el cual solo se pueden ejecutar códigos del propio lenguaje,
sin poder elaborar algún archivo de memoria o de serie de comandos que se puedan
ejecutar automáticamente, es por ello que R suele ser un poco tedioso, ya que solo se
puede escribir una vez el código y si este resulta estar mal, tendrás que regresar y ver si
permite corregir dicho código, o en su defecto, reescribir el código.
Figura 9: Consola de R
RStudio
RStudio tiene una facilidad de manejo, puesto a que su interfaz permite una interacción
más eficiente para administrar el trabajo, pues la pantalla se divide en diversos espacios,
los cuales son:
Después solo se presionará ctrl + shift + N y desplegará una ventana nueva con el Script:
Finalmente para ejecutar una linera de código, debes posicionarte al final del comando y
presionar ctrl + enter.
Para instalar una paqueteria en R, solo se debe seguir el siguiente comando (la libreria
tseries es un ejemplo):
# paquetes<-c("ggplot2", "dplyr")
# install.packages(paquetes, dependencies=TRUE)
library(tseries)
Pero de igualmanera, podemos llamar diversas liberías de forma simultanea con la ayuda
de libraries que se encuentra en la libreria easypackages:
library(easypackages)
Por último, podemos llamar funciones sin la necesidad de cargar la paqueteria completa,
para ello utilizamos dobles puntos (::) , pero la estructura es: paquete::función, tal como
se mostrará a continuación.
x<-seq(1,20,1)
urca::summary(x)
Suma
Para realizar una suma, es muy sencillo, simplemente se debe ocupar el operador “+” y
con ello se ejecuta la suma, por ejemplo:
5+2
## [1] 7
10+16
## [1] 26
1256+2378
## [1] 3634
Resta
Para realiazar una resta, solo se tiene que utilizar el simbolo “-” para indicar la operación,
por ejemplo:
5-2
## [1] 3
15-34
## [1] -19
9873-3091
## [1] 6782
Multiplicación
6*12
## [1] 72
10*10
## [1] 100
35*89
## [1] 3115
División
Por último, para poder operar una división solo basta con utilizar “/”, ejemplo:
100/10
## [1] 10
25/195
## [1] 0.1282051
1/3
## [1] 0.3333333
Variables
Dentro de R, existen diversos tipos de objetos, los cuales son diversos. Pero también se
pueden asignar variables, donde se otorga un valor a una letra o nombre en especifico,
para realizar lo anterior se utiliza el operador <-, por ejemplo:
x<-67
## [1] 67
5*x-43
## [1] 292
# Variables cualitativas
pais<-"Mexico"
pais
## [1] "Mexico"
Vectores
Este tipo de datos, son arreglos ordenados en los cuales se puede almacenar información
de tipo númerico (variables cuantitativas), alfanúmerico (variables cualitativa) o un valor
lógico (Falso y verdadero ó TRUE y FALSE), pero que no son mezclas de estos. En R,
para poder crear dicho vector, se utiliza el símbolo c() y que significa concatenar.
Esta función almacena la información de forma vectorial, por ende se acostumbra a eti-
quetarlo con un nombre corto y repreentativo del tipo de datos que contiene, ejemplo:
edad<-c(25,40,39,46,10,11,14,23,43)
deporte<-c(TRUE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE,
FALSE, FALSE)
comic_fav<-c(NA,"Superman", "Batman", NA, "Shazam",
"Batman", "Superman", NA, "GreenLanter")
edad
## [1] 25 40 39 46 10 11 14 23 43
deporte
## [1] TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
comic_fav
Para extraer un dato que se encuentre dentro de un vector, se hace uso del corchete “[]”
y dentro del mismo solo se coloa la posición en donde se encuenntra el dato, ejemplo:
edad[5]
## [1] 10
comic_fav[c(2,9)]
Por último, si se busca exceptuar un dato dentro de un vector solo se debe poner el valor
como [-a] donde a es la posición del dato a omitir, ejemplo:
deporte[-5]
Matrices
Las matrices son arreglos rectangulares de filas y columnas con información númerica,
alfanúmerica o lógica. Para crear unaa matriz, se utiliza la función matriz().
Ejemplos
Vamos a contruir diversas matrices, con la finalidad de demostrar que hay diferentes
maneras de declarar una matriz.
Para crear una matriz cuadrada:
matriz1
matriz2
Otra forma de plantear matrices, es mediante vectores y con la función cbind() la cual
une columnas, ejemplo:
vector1<-c(34,56,22)
vector2<-c(22,67,98)
vector3<-c(12,45,76)
matriz3
Ahora bien, si lo que se busca es acomodar los vectores por fila, se hace uso de rbind(),
ejemplo:
matriz4
Operaciones de matrices
Para realizar diversas operaciones de matrices, se debe tomar en cuenta que las matrices
a operar tienen que ser cuadráticas (mismas filas y columnas), ya que de no ser así las
operaciones tal vez no podrás realizarse.
Como ejemplos, se utilizarán las matrices 3 y 4 de los ejemplos anteriores.
Suma
matriz5<- matriz3+matriz4
matriz5
Resta
matriz6<- matriz3-matriz4
matriz6
Multiplicación
matriz7<- matriz3%*%matriz4
matriz7
Transpocisón
Se utiliza para cambiar de lugares de las filas por columnas y viceversa en una matriz,
en R, para realizar dicha acción se utiliza t(), ejemplo:
matriz4
matrizt<-t(matriz4)
matrizt
Determinante
Se utiliza para obtener una forma multilineal alternada de un cuerpo.Esta definición in-
dica una serie de propiedades matemáticas y generaliza el concepto de determinante
haciédolo aplicable en numerosos campos, para realizar dicha operación en R, se utiliza
det(), ejemplo:
matriz3
matrizdet<-det(matriz3)
matrizdet
## [1] -496
Inversa
Ejemplo:
matriz3_inv<-solve(matriz3, I)
matriz3_inv
El marco de datos o data frame es uno de los objetos más utilizados porque permite
agrupar varios vectores con información de diferente tipo (númerico, alfanúmerico o lógi-
co) en un mismo objeto, la unica restricción es que todos los elementos deben contener
el mismo espacio o dimensión.
Para generar un marco de datos en R, se utiliará la función data.frame, ejemplo:
datos<-data.frame(edad,deporte,comic_fav)
datos
Para poder recuperar las variables (columnas) contenidas en el marco de datos (data
frame), se pueden usar difrentes operadores: $, corchetes simples [] o corcchetes dobles
[[]].
Ejemplo:
datos$deporte # Con $
## [1] TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
## [1] TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
## [1] TRUE TRUE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
Listas
Las listas son otro tipo de objeto muy usado para almacenar objetos de diferente tipo,
aquí ya no importa la dimensión. Para poder crear una lista en R, solo basta con usar
list(), ejemplo:
lista
## $E1
## edad deporte comic_fav
## 1 25 TRUE <NA>
## 2 40 TRUE Superman
## 3 39 FALSE Batman
## 4 46 FALSE <NA>
## 5 10 TRUE Shazam
## 6 11 TRUE Batman
## 7 14 TRUE Superman
## 8 23 FALSE <NA>
## 9 43 FALSE GreenLanter
De igual forma, para extraer elementos se hace uso de los mismo operadores que con el
data frame:
lista$E1 #Con $
## $E2
## [,1] [,2] [,3]
## [1,] 1784 3918 3816
## [2,] 3918 9650 11218
## [3,] 3816 11218 15864
## [1] 34 56 22
Es importante tener en cuenta que hay muchas maneras de importar los datos en R, en
las cuales RStudio también juega un papel destacado, puesto a que con esta interfaz
podemos cargar datos con el uso de la botonera en vez de programar el código.
Para exportar datos, es necesario contar con un espacio o ruta definido, puesto a que se
utilizarán funciones de escritura donde se podrán almacenar los archivos exportados en
diferentes formatos. Cabe recalcar que solo se puede realizar mediante comando y no
hay una función dentro de la botonera de RStudio que permita realizar dicha acción.
Es por ello que a continuación se mostrarán las formas en las cuales podrás enrutar un
espacio de trabajo (en caso de no contar con un proyecto) o bien, se mostrará una forma
sutíl en la cual se pueden cargar y exportar las bases de una forma muy simple.
setwd()
Y nuevamente para llamar a una base, solo se ocuparán los comandos pertenecientes al
tipo de extensión que se requieren.
Comando read.delim(“clipboard”)
Una manera muy sencilla de cargar una base de datos, es mediante el comando
read.delim(“clipboard”) con este comando podemos (literalmente) copiar y pegar datos
traidos de una hoja de excel, de una archivo de Stata o SPSS.
Para realizar este paso, lo primero que se debe hacer es abrir el archivo de donde que-
remos sustraer los datos y copiar todo lo que queremos ingresar a R (con todo y cabece-
ras):
base<-read.delim("clipboard")
head(base)
## 2 1 Aguascalientes 1001
## 3 1 Aguascalientes 1001
## 4 1 Aguascalientes 1001
## 5 1 Aguascalientes 1001
## 6 1 Aguascalientes 1001
## MUN POB_TOT
## 1 Aguascalientes 877190
## 2 Aguascalientes 797010
## 3 Aguascalientes 723043
## 4 Aguascalientes 643419
## 5 Aguascalientes 582827
## 6 Aguascalientes 506274
class(base$IM)
## [1] "NULL"
class(base$GM)
## [1] "NULL"
Para cargar una base de datos con la extensión o formato CSV, se utiliza el comando
read.csv(“nombre.csv”) con lo cual podremos cargar los datos de dicha base en es-
ta extensión, sin embargo hay dos maneras de realizarla: 1) Generando el espacio de
trabajo o enrutando y 2) Con el uso de la botonera.
Para cargar una base de esta manera, se debe realizar lo que previamente se realizó
en este documento (ya sea usando setwd() o un proyecto con lo archivos a cargar),
entonces, lo único que se debe realizar es simplemente asignarle un nombre a la base y
cargar el archivo:
base1<-read.csv("Bases/MarginaciónMun.csv",
check.names = F)
head(base1[1:3])
class(base1)
## [1] "data.frame"
base2<-read.csv("Bases/concentradohogar.csv")
head(base2[1:3])
class(base2)
## [1] "data.frame"
Uso de botonera
Otra manera de cargar la base, es mediante la botonera de RStudio. Para ello, tendremos
que irnos la parte de “import Dataset” y dar click en “From text”:
Posterior a ello, aparecera un menu, en el cual vamos a buscar la ruta del archivo:
Una vez seleccionado el archivo y al ejecutar, se desplegará una ventana como la si-
guiente:
Para cargar una base de datos con la extensión o formato DTA, se utiliza el comando
read_dta(“nombre.dta”) de la libería haven con lo cual podremos cargar los datos de
dicha base en esta extensión, sin embargo hay dos maneras de realizarla: 1) Generando
el espacio de trabajo o enrutando y 2) Con el uso de la botonera.
Para cargar una base de esta manera, se debe realizar lo que previamente se realizó
en este documento (ya sea usando setwd() o un proyecto con lo archivos a cargar),
entonces, lo único que se debe realizar es simplemente asignarle un nombre a la base y
cargar el archivo:
library(haven)
baseE<-read_dta("Bases/EncuestaGenero.dta")
head(baseE[1:3])
## # A tibble: 6 x 3
## con1 edo muni
## <dbl> <dbl> <dbl>
## 1 1 2 2
## 2 2 2 2
## 3 3 2 2
## 4 4 2 2
## 5 5 2 2
## 6 6 2 2
class(baseE)
base2d<-read_dta("Bases/concentradohogar.dta")
head(base2d[1:3])
## # A tibble: 6 x 3
## folioviv foliohog ubica_geo
## <chr> <chr> <chr>
## 1 0100013605 1 01001
## 2 0100013606 1 01001
## 3 0100017801 1 01001
## 4 0100017802 1 01001
## 5 0100017803 1 01001
## 6 0100017804 1 01001
class(base2d)
Uso de botonera
Otra manera de cargar la base, es mediante la botonera de RStudio. Para ello, tendremos
que irnos la parte de “import Dataset” y dar click en “From Stata”:
Posterior a ello, aparecera un menu, en el cual vamos a buscar la ruta del archivo:
Una vez seleccionado el archivo y al ejecutar, se desplegará una ventana como la si-
guiente:
Para cargar una base de datos con la extensión o formato DTA, se utiliza el comando
read_sav(“nombre.sav”) de la libería haven con lo cual podremos cargar los datos de
dicha base en esta extensión, sin embargo hay dos maneras de realizarla: 1) Generando
el espacio de trabajo o enrutando y 2) Con el uso de la botonera.
Para cargar una base de esta manera, se debe realizar lo que previamente se realizó
en este documento (ya sea usando setwd() o un proyecto con lo archivos a cargar),
entonces, lo único que se debe realizar es simplemente asignarle un nombre a la base y
cargar el archivo:
library(haven)
baseS<-read_sav("Bases/EncuestaGenero.sav")
head(baseS[1:3])
## # A tibble: 6 x 3
## con1 edo muni
## <dbl> <dbl> <dbl>
## 1 1 2 2
## 2 2 2 2
## 3 3 2 2
## 4 4 2 2
## 5 5 2 2
## 6 6 2 2
class(baseS)
base2s<-read_sav("Bases/concentradohogar.sav")
head(base2s[1:3])
## # A tibble: 6 x 3
## folioviv foliohog ubica_geo
## <chr> <chr> <chr+lbl>
## 1 0100013605 1 01001 [Ags., Aguascalientes]
## 2 0100013606 1 01001 [Ags., Aguascalientes]
## 3 0100017801 1 01001 [Ags., Aguascalientes]
class(base2s)
Uso de botonera
Otra manera de cargar la base, es mediante la botonera de RStudio. Para ello, tendremos
que irnos la parte de “import Dataset” y dar click en “From SPSS”:
Posterior a ello, aparecera un menu, en el cual vamos a buscar la ruta del archivo:
Una vez seleccionado el archivo y al ejecutar, se desplegará una ventana como la si-
guiente:
Para la lecutra de archivos en Excel (extensión .xlsx), se debe contar con dos paque-
terias: readxl y openxlsx. Además se debe trabajar con un espacio definido, es decir,
ya debe existir un enrutamiento de una carpeta donde se contengan los archivos con la
extensión xlsx.
Librería readxl.
# install.packages("readxl",
# dependencies=TRUE)
library(readxl)
basexlsx<-read_excel("Bases/concentradohogar.xlsx")
head(basexlsx[1:3])
## # A tibble: 6 x 3
## folioviv foliohog ubica_geo
## <dbl> <dbl> <dbl>
## 1 100013605 1 1001
## 2 100013606 1 1001
## 3 100017801 1 1001
## 4 100017802 1 1001
## 5 100017803 1 1001
## 6 100017804 1 1001
class(basexlsx)
Librería openxlsx.
# install.packages("readxl",
# dependencies=TRUE)
library(openxlsx)
basexlsx2<-read.xlsx("Bases/MarginaciónMun.xlsx")
head(basexlsx2[1:3])
class(basexlsx2)
## [1] "data.frame"
Para poder leer esta clase de archivos (en DBF) es necesario contar con la paqueteria
foreing, donde en ella se puede usar el comando read.dbf y en seguida se escribe el
nombre del archivo en dicha extensión para poder realizar la carga del mismo.
Para cargar una base en dicha extensión, no se puede usar la botonera, por lo que la
definición de un espacio es la unica manera, para ello se debe realizar lo que previamente
se realizó en este documento (ya sea usando setwd() o un proyecto con lo archivos a
cargar), entonces, lo único que se debe realizar es simplemente asignarle un nombre a
la base y cargar el archivo:
library(foreign)
base3e<-read.dbf("Bases/concentradohogar.dbf")
head(base3e[1:3])
class(base3e)
## [1] "data.frame"
Exportación de datos
En este tema, se mostrarán las formas en como se pueden exportar bases de datos en
formato data.frame solo en las siguientes extensiones: .csv, .dta, .sav y RData. Para
elaborar este proceso, se requiere definir un espacio de trabajo, donde se almacenen las
bases exportadas, para ello se recomienda elaborar una carpeta dentro del proyecto, por
lo que con R podemos realizarlo de una manera sencilla.
Para crear una carpeta, basta y sobra con usar dir.create y con la / se indica el nombre
de dicha carpeta, tal y como se mostrará a continuación:
dir.create("Bases/bases_exportadas")
Ahora, para cambiar el directorio a esa carpeta y ahí almacenar las bases importadas,
se utilizará setwd enseguida de paste0 junto con getwd para copiar la ruta actual del
proyecto y al ultimo solo se anexa /bases_exportadas y como resultado todo lo que se
exporte se encontrará en dicha carpeta.
Supongamos que hay una a encuesta de20 personas, donde las preguntas se encuentran
en una escala likert (datos de 1 a 5), la información de alamacena como vectores y al
final se elabora un data.frame de dichos datos:
ID<-c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
Nombre<-c("Juan", "Carlos", "Susana", "Javier", "Valeria",
"Alexis", "Alfredo", "Erandy", "Melissa","Jose",
"Diana", "Alin", "Andrea", "Luis", "Raymundo",
"Samuel","Armando", "Magdalena", "Joselin", "Ray")
Pregunta1<-c(1,4,5,2,3,1,1,2,4,5,3,1,2,5,3,1,5,3,5,3)
Pregunta2<-c(4,4,5,2,3,1,2,5,2,3,1,4,2,5,3,1,2,5,4,3)
Pregunta3<-c(2,3,5,1,4,2,2,1,3,5,5,3,1,4,2,2,4,5,3,1)
Encuesta
write.csv(
Encuesta,
file="D:/GEM/Materiales extra/Introducción a R/Bases/bases_exportadas/Encu
)
library(haven)
write_dta(Encuesta,
"D:/GEM/Materiales extra/Introducción a R/Bases/bases_exportadas/E
library(haven)
write_sav(Encuesta,
"D:/GEM/Materiales extra/Introducción a R/Bases/bases_exportadas/E
save(Encuesta,
file="D:/GEM/Materiales extra/Introducción a R/Bases/bases_exportadas/E