Está en la página 1de 59

Maestría en Estadística Aplicada

Introducción a R: una herramienta


para el análisis de datos 1
2
a. Instalación paso a paso.
b. Ambiente R y Rstudio.
c. Instalación, activación y desactivación de librerías.
d. Directorio de trabajo y mi primer Script en Rstudio.
e. Tipos de datos, operadores y estructuras de datos (vectores,
matrices y data frames).
f. Operaciones básicas.
g. Importar y exportar bases de datos.
h. Explorar bases de datos.
i. Seleccionar, crear y borrarvariables.
j. Filtrar y ordenarcasos.
k. Unir bases datos.
1 Introducción a R
Herramienta open source
Res un entorno de software
“ libre para gráficos y
computación estadística.
RStudio es un entorno de
desarrollo integrado para el
lenguaje de programación R

5
¿Por qué utilizar R y Rstudio?
▸ Puede leer prácticamente cualquier tipo de datos y
dispone de una gran colección de herramientas
para análisis.

▸ Hasta cierto punto es compatible con grandes


volumenes de datos (limitado por RAM).

▸ Se ejecuta en muchas plataformas.

▸ Es gratuito.

6
▸ Manejo y almacenamiento efectivo de los datos.
Utilidades gráficas para la visualización de datos.

▸ Automatizar procesos mediante la creación de


script.

▸ Mejora su funcionalidad constantemente. La


comunidad crea constantemente nuevas funciones,
corrige bugs y documenta paso a paso las mejoras.

7
¿Por qué R es tan usado en
Big Data?
▸ Crea dashboards para visualizar y analizar datos.

▸ Crea informes automáticos.

▸ Dispone de herramientas para el análisis estadístico, machine


learning y data mining.

▸ Es compatible con grandes volumenes de datos.

▸ Procesamiento en paralelo y distributivo.


8
Instalación d e R y Rstudio

1. Descargar el paquete de R (descarga R por primera vez) para el


sistema operativo que disponga. https://cran.rstudio.com/.
2. Descargar Rstudio versión gratuita.
https://rstudio.com/products/rstudio/download/

Instalar en orden y en sus valores predeterminados R y Rstudio


Ambiente d e Rstudio

3. Espacio de trabajo e historial

1. Editor de código

3. visualizador de carpetas,
librerías y gráficos

2. Consola de R
Modificar el ambiente de Rstudio
Modificar la apariencia del
ambiente de Rstudio, cambiar el
diseño del paneles y la codificación
del Script.

Tools Global options


Conceptos básicos

▸ Ejecutar, llamar, correr: pedir que R realice algo, en otras palabras,


estamos dando una instrucción o una entrada.’

▸ Objeto: En R, todo es un objeto. Al hablar de objetos no referimos


cualquier cosa que existe en R y que tiene un nombre.

▸ Funciones: es una serie de operaciones a la que les hemos asignados un


nombre. Las funciones aceptan argumentos, es decir, especificaciones
sobre cómo deben funcionar.
▹ mean() En caso de existir varios read.xlsx(xlsxFile,sheet =1, startRow =1)
▹ read.xlsx() argumentos estos se los
separa por una coma. Algunos parámetros se
▹ summary() pueden omitir
13
Conceptos básicos
▸ Librerías: R puede ser expandido con librerías. Cada librerias es una
colección de funciones diseñadas para atender una tarea específica.
▹ install.packages("readr")

▸ Script: son documentos de texto que contiene secuencias de comandos o


códigos de programación.

▸ #Los comentarios (empiezan por #) son muy importantes para explicar


el código.

▸ Cuidado con las mayúsculas y minúsculas que R las diferencia. NOes lo


mismo MUTATE que mutate.
14
Conceptos básicos

▸ Documentación: describe qué hace la función, sus argumentos, detalles


sobre las operaciones que realiza, los resultados que devuelve y ejemplos.
▹ ?mean()
▹ help("mean")

▸ Directorio de trabajo: es el lugar en nuestra computadora en el que se


encuentran los archivos con los que estamos trabajando en R.
▹ getwd() #Para ver mi actual directorio de trabajo.
▹ setwd("C:/otro_directorio") #Establecer un directorio de trabajo
▹ list.files() #Listar todos los archivos
▹ list.dirs() # Listar todos las carpetas
▹ ls() #Listar todos los objetos del espacio de trabajo local.
15
Instalación de librerías
▸ R se organiza en librerías (contenedores de funciones).
▸ Algunas librerías vienen instaladas por defecto. Para el curso instalaremos
librerías adicionales.

Para hacer uso de la funciones de una librería, esta debe activarse siempre que
se inicie sesión de R.
o install.packages("nombreLibreria") #Instalar librerías
o library (nombreLibreria) #Cargar librería
o detach("package:nombreLibreria", unload =TRUE)#Desactivar
o remove.packages("nombreLibreria") #Desinstalar

▸ Por ejemplo, si queremos importar un archivo Excel (.xlsx) mediante la


función read.xlsx tendremos que cargar e instalar la librería openxlsx. 16
▸ Una de las principales librerías que utilizaremos es “Tidyverse”. El tidyverse es
una colección de librerías R diseñados para la ciencia de datos. Todos los
paquetes comparten una filosofía de diseño, una gramática y estructuras de
datos subyacentes.

▹ readr #Importar y exportar archivos ‘.csv’, ‘.txt’


▹ dplyr #Procesamiento de datos y resumen de información
▹ filter: devuelve un conjunto de filas según una o varias condiciones
lógicas.
▹ rename: renombra variables en una data frame.
▹ mutate: añade nuevas variables/columnas o transforma variables
existentes
▹ summarise: genera resúmenes estadísticos

17
Librerias q u e utilizaremos

▹ ggplot2 #Para creación de gráfico


▹ lubridate #Para análisis y la manipulación de fechas

▸ Otras librerías
▹ forcats #Transformar y trabajar con variables categóricas
▹ openxlsx #Importar y exportar archivos ‘.xlsx’
▹ plyr #dividir-aplicar-combinar tablas de datos
▹ data.table #Ofrece rápida y eficiente memoria: lectura y escritura de
archivos
▹ Foreign #Importar y exportar archivos ‘.sav’, ‘.dta’.

18
Mi primer Script en Rstudio
#Establecer un directorio de trabajo
setwd("C:/Users/Administrator/Documents")
getwd() #ver el directorio actual choose.dir() #Elegir una carpeta

#Crear carpetas en el directorio de trabajo


dir.create("Introducción a R_prueba") #Único parámetro nombre carpeta
file.exists("Introducción a R_prueba") #Comprobar que se creó la carpeta

#Renombrar la carpeta
file.rename("Introducción a R_prueba", "Introducción a R")

Arg1: Antiguo nombre Arg2: Nuevo nombre


19
Mi primer Script en Rstudio
#Crear una carpeta dentro de otra carpeta.
#Se utiliza una función dentro de otra función
dir.create( file.path("Introducción a R", "Clase 1"),recursive =TRUE)
Arg1: Carpeta Arg2:
2da función principal Subcarpeta
1era función
Arg1: Ruta y Arg2: recursive =TRUE
subcarpeta a crear

Recursive se utiliza para crear directorios anidados.


File.path se utiliza para construir caminos a archivos y directorios que sean
independientes al directorio de trabajo establecido.

dir.create( file.path("Introducción a R", "Clase 2"), recursive =TRUE)


20
Mi primer Script en Rstudio
#Crear archivos
file.create( file.path("Introducción a R", "Clase 1", "script.R"), recursive =
TRUE) #Cuando crees archivos no te olvides de colocar la extensión del
mismo. Un script se guarda con extensión .R

#Renombrar archivos
file.rename( file.path("Introducción a R", "Clase 1", "script.R"),
file.path("Introducción a R", "Clase 1", "Mi primer script.R") )

#Copiar archivos
file.copy( file.path("Introducción a R", "Clase 1", "Mi primer script.R"),
file.path("Introducción a R", "Clase 2", "Mi primer script.R") ) 21
Mi primer Script en Rstudio
#Remover archivos
file.remove( file.path("Introducción a R", "Clase 2", "Mi primer script.R") )

#Remover carpetas
unlink("Introducción a R", recursive =TRUE)

#Ejecutar un script sin abrirlo en el entorno de Rstudio


source("Introducción a R/Clase 1/Mi primer script.R") Es muy útil cuando manejes
varios script a la vez y uno
de ellos depende del resto
En el único parámetro que establece source se
especifica la ruta y nombre de archivo

22
Tipos de datos

En R los datos* pueden ser de diferentes tipos. Cada tipo tiene


características particulares que lo distinguen de los demás.
Verificar tipo de dato
class(3)
class("tres")
class(TRUE)

str(3)
str("tres")
str(TRUE)
mode(3)
mode("tres")
*Un dato es una representación simbólica de un atributo o variable cuantitativa o cualitativa

24
Operadores

Los operadores son los símbolos que le indican a R que debe realizar una
tarea. Combinando datos y operadores es que logramos que R haga su trabajo.
Aritméticos

25
Operadores

Relacionales

Al usar los operadores >, >=,<y <=con cadenas de texto, estos tienen un comportamiento especial.
Por ejemplo,"casa"!="barco“nos devuelve TRUE

26
Operadores

lóg icos

Los operadores |y & siguen estas reglas:

|devuelve TRUEsi alguno de los datos es TRUE |solo devuelve FALSE si ambos datos son FALSE
& solo devuelve TRUE si ambos datos es TRUE &devuelve FALSE si alguno de los datos es FALSE

27
Operadores

De asignación
Esta operación nos permite “guardar” el resultado de operaciones, de modo que
podemos recuperarlos sin necesidad de realizar las operaciones otra vez.

Aunque podemos usar el signo igual para una asignación, a lo largo de este curso
utilizaremos <-, por ser característico de R y fácil de reconocer visualmente.

28
E s tructura de datos
Las estructuras de datos son objetos que contienen datos. Cuando
trabajamos con R, lo que estamos haciendo es manipular estas
estructuras.

29
Vectores
Un vector es la estructura de datos más sencilla en R. Un vector es una colección
de uno o más datos del mismo tipo y solo tiene una dimensión (largo).

Creamos vectores usando la función c() (combinar).

#Vectornumérico #Vectorizaciónde operaciones


c(1, 2, 3, 5, 8, 13) mi_vector <- c(2, 3, 6, 7, 8, 10, 11)
## [1] 1 2 3 5 8 13
mi_vector +2
#Vector de cadena de texto ## [1] 4 5 8 9 10 12 13
c ("arbol", "casa","persona")
## [1] "arbol" "casa" "persona“ mi_vector >7
## [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE
30
Matrices
Las matrices son vectores multidimensionales. Al igual que un vector, únicamente
contienen datos de un sólo tipo, pero además de largo, tienen más dimensiones.
Para graficar en R, tener en cuenta que una matriz de dos columnas y una gráfica
de dispersión son prácticamente lo mismo.

31
Matriz
Para crear matrices se utiliza como información la cantidad de películas realizadas
por Warner, Disney y Fox durante el periodo 2010-2018.

Creamos una matriz de datos usando la función matriz().

matriz(data, contenido
nrow=1 número de filas
#Crearmatriz a partir de vectores
ncol=1) número de columnas
matriz_peliculas <-
matrix(c(warner,disney, fox),
#Crear vectores para las columnas dela matriz nrow =9,
warner <-c(20, 20, 16, 17, 17,22, 17, 18, 19) ncol =3)
disney <- c(11, 13, 11, 8, 12, 11, 12, 8, 10)
fox <- c(18, 15, 15, 15, 16, 17, 15, 13, 11)
32
Matrices
#Cambiar los nombres a la matriz
colnames(matriz_peliculas)<- c("warner","disney","fox")
rownames(matriz_peliculas)<-c(2010:2018)

seq(from=2010,to=2018,by=1)

#Seleccionarunelementode lamatriz #Seleccionarmás de unelemento


matriz_peliculas[3,2] matriz_peliculas[c(3,4),c("disney","fox")]
matriz_peliculas["2012","disney"]
#Seleccionaruna columna
#Seleccionarunafila matriz_peliculas[,3]
matriz_peliculas[3,] matriz_peliculas[,"disney"]
matriz_peliculas["2012",]

33
Data frame
Los data frames (DT) son estructuras de datos de dos dimensiones (rectangulares)
que pueden contener datos de diferentes tipos, por lo tanto, son heterogéneas.

• Los DT son como hojas de cálculos de


Excel.

• En un DT podemos encontraruna
columna con caracteres, otra con
números y otras con variables lógicas.

• Son importantes para realizar graficas,


análisis y modelos estadísticos.

34
Data frame
Para crear un DT se utiliza datos de películas de Shrek. Como primer paso se
guarda en vectores la información del nombre, puntuación y si la película fue
posterior al año 2005.

nombre <-c("Shrek","Shrek 2", "Shrek Tercero", "Shrek: Felices por siempre")


puntuacion <- c(7.9, 7.2, 6.1, 6.3)
posterior_2005 <-c(FALSE, FALSE, TRUE, TRUE)

Una de las opciones para crear data frames es unir vectores con la función data.frame().
peliculas_df <-
Los vectores si o si deben contener
data.frame(nombre, columna1 lamisma cantidad de datos
puntuacion, columna2
posterior_2005) columna3
35
Data frame
#Cambiar los nombres a la matriz
names(peliculas_df )<- c("TITULO_PELICULA","PUNTUACION","POSTERIOR2005")

#Seleccionarelementosde un DT
Al igual que en matrices, se seleccionar un elemento, filas o columnas. La diferencia es que
para la selección también puede utilizar el símbolo $.

peliculas_df[1,2]
peliculas_df[1,"PUNTUACION"]
peliculas_df[c(1,2),c("TITULO_PELICULA","PUNTUACION")]
peliculas_df[1,]
peliculas_df[,2]
peliculas_df[,"PUNTUACION"]
peliculas_df$PUNTUACION 36
Listas
Las listas permiten agrupar o contener dataframes, matrices y vectores en una
misma variable.

Un caso común donde se encuentra las


listas es en los modelos estadísticos
como la regresión lineal. Cuando usamos
la función de regresión lineal lm(), se
carga una lista en el entorno de variables

37
Listas
Para crear una lista utilizamos la función list() y pasamos como argumentos los
elementos que queremos incluir. Podemos cambiar los nombres utilizando la
función names()
lista_curso <-list(peliculas_df,matriz_peliculas)
names(lista_curso) <-c("DT","matriz")

#SeleccionarDT de la lista
lista_curso[["DT"]] #Se recomienda utilizar esta opción
lista_curso$DT #No recomiendo usar esta opción porque confunde con DT

#Seleccionarel tercer elementodelDT #Seleccionarfila 5 ycolumna3 de la matriz


lista_curso[['DT']][3] lista_curso[['matriz']][5,3]

38
Funcionesbásicas

#Algunasfuncionesyase mostraroncon anterioridad

#Versión de R #listar las funciones ejecutados


R.Version() history()

#Lista de los creadores de R #Crear objetos y ejecutar en una línea


contributors() a<-c(1:10);b<-"cursode R"; c<-123+2i;d<-TRUE
a; b; c
#Como citar al lenguaje R print(a); print(b);print(c); print(d)
citation()
citation("haven") #Lista objetos en el environment
ls()
#Ayuda (sistema, librerías)
help() #Eliminar objetos
help("haven") rm(a) Cuando son objetos se
?haven rm("a") omite comillas dobles
help.start() rm(all=list()) 39
Operaciones aritméticas
En un barrio medio de la ciudad de Quito se ha encuestado a 20 hogares con el
objetivo de evaluar su condición socioeconómica. Una de las preguntas hace
referencia al ingreso económico mensual. Responder ¿Cuál es el ingreso
promedio mensual de los hogares?.

#Construir un vector conlos ingresos


ingresos <- c(800, 742, 650, 717, 775, 560, 670, 810, 660, 700, 6000, 750, 720, 655, 620, 820,
750, 600, 710, 490)

#Determinarmínimoy máximo
min(ingresos) max(ingresos)

range(ingresos) #Obtengo el máximo y el mínimo con una sola función


40
Operaciones aritméticas
#Sumarel ingresosde los 20 hogares
suma <- sum(ingresos)

#Contarel númerode registros quecon contieneunvector


numero_hogares <- length(ingresos)

#Calcularel promedio
suma/numero_hogares
Son iguales
mean(ingresos)

#Calcularlamedianaymoda La mediana es el valor que se encuentra a la


median(ingresos) mitad de un conjunto de datos ordenados.
library(modeest) La moda es el valor que más se repite o, lo que
mfv(ingresos) #moda es lo mismo, el que tiene la mayor frecuencia. 41
Funcionesbásicas

Operaciones aritméticas
#La función summaryproporciona los principalesestadísticos
summary(ingresos)

Respuesta:La media de los hogares de un barriomedio de Quito es USD 960.

Si contrastamos estas cifras con el ingreso familiar mensual publicado en el enero de 2021
por el Instituto Nacional de Estadística y Censos del Ecuador (USD 746,67), encontramos
diferencias significativas. Esto se debe a que en nuestros datos encontramos un hogar con
un ingreso atípico o extremo para un barrio medio.

La mediaes sensiblea valores atípicos o extremos.


42
Funcionesbásicas

Operaciones aritméticas
#Ante valores extremosse recomiendausar lamediaacotada
mean(ingresos,trim =0.05)
El 5%de los datos son
eliminados de los extremos

ingresos <- c(490, 560, 600, 620, 650, 655, 660, 670, 700, 710, 717, 720, 742, 750, 750, 775,
800, 810, 820, 6000)

Los resultados sonmas consistentes


conla media acotadaal 5%

#Cuandotenemosvalores perdidos (unhogar no reporta los ingresos)


ingresos <-c(490, NA, 600, 620, 650, 655, 660, 670, 700, 710, 717, 720, 742, 750, 750, 6000)
mean(ingresos,trim =0.06, na.rm =T)
43
Funcionesbásicas

Operaciones aritméticas
#Comotrabajar operaciones conundata frame
df_ingresos <- data.frame(VAR_INGRESO=ingresos)
range(df_ingresos$VAR_INGRESO)
median(df_ingresos$VAR_INGRESO)
mean(df_ingresos$VAR_INGRESO,trim=0.06,na.rm=T)
summary(df_ingresos$VAR_INGRESO)

RECUERDA: conlafunciónsummary
nose puede acotarla media

44
Atajos de teclado para Rstudio
Alt activar la barra de menú.
Alt +primer carácter que compone la barra de menú activar submenú
Esc desactivar barra de menú.
Ctrl +3 acceder a la ayuda.
Ctrl +4 acceder al historial de los comandos ejecutados.
Ctrl +5 visualizar los archivos y carpetas que componen el sistema.
Ctrl +6 nos lleva a la pestaña plot.
Ctrl +7 nos lleva a la pestaña packages.
Ctrl +8 nos lleva a la pestaña environment.
Ctrl +L limpiar la consola
45
Atajos de teclado para Rstudio
Ctrl +Shift +N crear un nuevo script.
Ctrl +Shift +Tab navegar (der. a izq.) entre los script o archivos (pestaña).
Ctrl +Tab navegar (izq. a der.)entre los script o archivos.
Ctrl +Enter ejecutar una función.
Ctrl +A seleccionar todas las funciones dentro de un script.
Ctrl +W cerrar una pestaña en especifico.
Ctrl +Shift +W cerrar todas las pestañas.
Ctrl +O buscar un archivo de R (script o dataset) en especifico.
Ctrl +S guardar un script.
Ctrl +Q cerrar sesión de R.
46
Importar – exportar archivos
#Dependiendodelformato existenvarias librerías para importar y exportar archivos
Librerías
Archivos openxlsx readxls data.table readr utils haven foreign
read.xlsx() read_excel()
Excel (.xlsx) write.xlsx()
fread() read_csv() read.csv()
Plano (.csv) fwrite() write_csv() write.csv()
fread() read_delim() read.delim()
Plano (.txt) fwrite() write_delim() write.csv()
read_stata() read.dta()
Stata (.dta) write_stata() write.dta()
read_sav() read.spss()
SPSS (.sav) write_sav()
read_sas()
SAS (.sas) write_sas()

Ya sea para importar o exportar, todas las funciones como mínimo exigirán el nombre del
archivo y la extensión del mismo. 47
Unir data frames
Función rbind()

Función cbind()

rbind y cbind no necesitan un id para unir tablas.


Por ello, es importante revisar la posición de las
variables y el número de caso de las dos variables.

48
Unir data frames
Necesitan un id para unir las tablas. En el
ejemplo el id es la variable “x1”. No obstante, en
la práctica el Idpoder ser una o mas variables.

49

También podría gustarte