Está en la página 1de 39

INTRODUCCIÓN A R

DANIEL VÁSQUEZ BOTERO


INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

TEMAS A TRATAR
1. Presentación de R 9. Abrir y exportar bases de datos
2. Instalación 10. Base de datos especial
3. Manejo de interfase 11. Exploración inicial de los datos
4. Espacio de trabajo 12. Modificación de bases de datos
1. Working directory • Crear, filtrar, agrupar, extraer
2. Packages 13. Análisis univariado
5. R como calculadora 14. Análisis bivariado
6. Creación y tipos de objetos 15. ggplot2
7. Gráficos de base
8. Funciones básicas
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

TEMAS DE LA SESIÓN 1
1. Presentación de R
2. Instalación
3. Manejo de interfase
4. Espacio de trabajo
1. Working directory
2. Packages
5. R como calculadora
6. Creación y tipos de objetos
7. Gráficos de base y distribución
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

“Yauh peng, yauh leng”


• It is a public-domain implementation of the S statistical language
• It is comparable, and often superior, in power to commercial
products
• Available for the Windows, Mac, and Linux
• The system saves data sets between sessions
• It’s easy to get help from the user community
• Incorporates features found in object-oriented and functional
programming languages

Matlof N. The art of R programming. A tour of statistical software design. San Francisco: No Starch Press; 2011.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

FLUJO DE DATOS

Grolemund G, Wickham H. R para Ciencia de Datos; 2011.


INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

GRAPHICAL USER INTERFACES (GUI)


• RStudio
• http://www.rstudio.org/ Integrated
• StatET development
• http://www.walware.de/goto/statet/ environments
• ESS (Emacs Speaks Statistics) (IDEs)
• http://ess.r-project.org/
• R Commander:
• John Fox, “The R Commander: A Basic-Statistics Graphical Interface to R,” Journal of
Statistical Software 14, no. 9 (2005):1–42.
• JGR (Java GUI for R),
• http://cran.r-project.org/web/packages/JGR/index.html

Matlof N. The art of R programming. A tour of statistical software design. San Francisco: No Starch Press; 2011.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

INSTALACIÓN DE R

4
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

INSTALACIÓN DE RSTUDIO

3
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

Editor
INTERFACE DE RSTUDIO Ambiente

Consola Salida
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

EDITOR
# para escribir

Guarda los comandos


importantes

Favorece el seguimiento de
los datos

CTRL + Shift + N

CTRL + ENTER

CTRL + Shift + S (o ENTER)


INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

AMBIENTE

Muestra los objetos


guardados en la sesión y el
historial de los comandos
ejecutados
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

CONSOLA

Ejecuta los comandos del


script, los independientes
en la consola, y arroja los
resultados procesados

CRTL + L para limpiarlo


INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

SALIDA

Favorece el acceso a los


archivos

Presenta los gráficos

Muestra los paquetes


instalados

Imprime los textos de las


respectivas ayudas
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

WORKING DIRECTORY
• Es la ubicación en donde R va a buscar todos los archivos externos
solicitados en el script
• > getwd()
• Opciones:
• Salida: ubicar la carpeta -> configuración -> Set As Working Directory
• Barra de opciones -> Session -> Set As Working Directory
• > setwd()

> dir() #muestra los objetos disiponibles en el wd

• Recomendaciones:
• Establecer la ruta de acceso en el script
• Usar rutas de acceso parciales al buscar archivos en las carpetas
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

PAQUETES
PAQUETES RECOMENDADOS
tidyverse
Para instalar paquetes: ggplot2, tibble, tidyr, readr
• > install.packages() purrr, dplyr, stringr, forcats
• Otras opciones: summarytools
• Salida: Packages -> Install swirl
• Barra de opciones -> Tools -> Install Packages foreign
openxlsx
epitools
Para activar paquetes: epiR
• > library()
• Otra opción: install.packages("remotes")
• Salida -> Packages -> □ install_github("GuangchuangYu/nCov2019")
library(nCov2019)
x <- get_nCov2019(lang='en')
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

COMANDOS EN R
• R es un lenguaje de expresión con una sintaxis muy simple:
• Diferencia mayúsculas y minúsculas
• Los símbolos aceptados dependen del encoding (UTF-8)
• Idealmente lo más sencillo possible
• Acepta ‘.’ y ‘_’
• los nombres inician con ‘.’ o letras
• Si inicia con ‘.’ debe seguirse de letras
• Comandos elementales: expresiones (print-and-lost) o asignaciones
• Separados por ‘;’ o líneas de texto
• Pueden agruparse en una expression con ‘{‘ y ‘}’
• Comentarios iniciando con ‘#’
• Comando incomplete: ‘+’

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

FUNCIONES Y PAQUETES Sintaxis de todo comando

nombre_funcion(arg1 = val1, arg2 = val2, ...)


• Función: es la base de cada orden; indica qué hacer y cada valor
corresponde a los objetos a los que se les debe aplicar cada uno de
los argumentos
1. Recomendación sobre el nombre de la función y su paquete
2. Selección de la función a utilizar + “( )”
TAB
3. Recomendación/selección sobre el argumento
4. Recomendación/selección sobre el objeto

• Paquetes: conjunto de funciones y objetos que quedan en un


segundo plano para ser utilizados
Grolemund G, Wickham H. R para Ciencia de Datos; 2011.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

VECTORES Y ASIGNACIONES
• Operador de asignación: (‘<-’ o ‘->’)
• Atajo: ALT+’-’
• En muchos casos ‘=‘ es una alternativa, pero idealmente se debe evitarlo y dejarlo para
sus funciones específicas y evitar futuras confusiones

• Función de asignación: assign()

• > x <- c(10, 5, 3.1, 6, 21)


• > assign(‘x’, c(10, 5, 3.1, 6, 21))

• y <- c(x, 0, x) #vector y con 11 entradas


Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

EXPRESIONES ARITMÉTICAS
• > v <- 2*y + y + 1 #vector de longitud 11
• Suma cada elemento incluido entre ellos mismos
• 2*x repetida 2.2 veces
• y sin repetición
• 1 repetido 11 veces
• Operadores aritméticos frecuentes:
• + - * / ^
• log, exp, sin, cos, tan, sqrt, min, max,
• range(x) = vector de 2 elementos c(min(x), max(x))
• length(x) = número de elementos incluídos en x
• sum(x) = total de los elementos en x
• prod(x) = producto de los elementos en x
Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

sum(x)/length(x) = mean(x)

sum((x-mean(x))^2)/(length(x)-1) = var(x)

sort(x) #vector con los elementos en orden creciente

order() o sort.list()

Máximo y mínimo paralelos (pmax y pmin)

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

CREAR SECUENCIAS REGULARES

• 1:30 = c(1, 2, …, 29, 30)

• z <- 2*1:15 = c(2, 4, …, 28, 30)

• seq(from = , to = , by = , lenght = , along = )

• rep(x, times = 5) #repite el objeto completo 5 veces

• rep(x, each= 5) #repite cada elemento 5 veces por paso

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
‘d’ = densidad ‘p’ = CDF ‘q’ = cuantil ‘r’ = simulación (random deviates) INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

Distribuciones
estadísticas

u <- runif(100,100,1000)
n <- rnorm(100,100,1000)
Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

rnorm(n = 1000,mean = 2500,sd =0.2*2500)->B1


hist(B1,col = “___",xlab = “___",ylab = “___")

rnorm(n = 1000,mean = 2900,sd =0.2*2900) -> B2


hist(B2,col = “___",xlab = “___",ylab = “___")
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

?par

par(mar=c(3.5, 3.5, 1, 1),


mfrow=c(2,1),
mgp=c(2,1,0),cex=0.9)

hist(B1,col=___,xlim=c(450,5050))
hist(B2,col=“___",xlim=c(450,5050))
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

EVALUACIÓN Y ELIMINACIÓN DE OBJETOS


• Objeto = todos los elementos que R crea y manipula
• > objects() o ls()
• Muestra los nombres de los objetos almacenados
• > remove(‘name’) o rm(‘name’)
• Elimina el objeto con ese nombre del espacio de trabajo

• Workspace = conjunto de objetos almacenados en un momento dado

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO
Algunos comandos que reciben un vector de números y genera una
estadística…
• min = mínimo; • sd = desv.estándar;
• max = máximo; • var = varianza;
• quantile = cuartiles;
• range = mínimo y máximo;
• summary = varios estadísticos
• mean = media;

• median = mediana;
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

VECTORES LÓGICOS (FALSE, TRUE, NA)


• Son generados por condiciones
• > f <- v>30

• Operadores lógicos
• < <= > >= == !=

• Relaciones entre expresiones lógicas


• & (‘and’) | (‘or’) ! (‘negación’)

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

VALORES FALTANTES
• NA = valores faltantes en el vector
• NaN = valores ilógicos dados numéricamente (0/0)

• > is.na(x) #da un vector lógico TRUE si el valor corresponde a x


• Incluye NA y NaN

• > is.nan(x) #TRUE sólo para valores NaN

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

AIUDAAAA
• Para funciones específicas: • Para buscar ayuda en varias formas:
• > help(nombre) • > help.search(nombre)
• > ?nombre • > ??nombre
• Para caracteres especiales • Para buscar ejemplos en un tema
usar comillas: específico:
• > help(‘[[‘) • > example(tema)
• Para abrir buscador web con • Otros sistemas de ayuda disponibles
hipervínculos de conceptos en Windows:
principales: • > ?help
• > help.start()
Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

VECTOR DE CARACTERES

• Deben limitarse por comillas (“) o (‘)

• > paste() #concatena argumentos uno por uno en una línea


• > paste(c("X","Y"), 1:10, sep="")
• c("X1“ , "Y2“ , "X3“ , "Y4“ , "X5“ , "Y6“ , "X7“ , "Y8“ , "X9“ , "Y10")

• > paste(c("X","Y"), rep(1:10, each=2 ), sep="")


• c("X1" , "Y1" , "X2" , "Y2" , "X3" , "Y3" , "X4" , "Y4" , "X5" , "Y5" …)

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

VECTORES ÍNDICE “[]”


• Vector lógico:
• Recrea los valores TRUE en el mismo orden… (x+1)[(!is.na(x)) & x>0]
• Vector de cantidades integrales positivas: {1, 2, … , lenght(x)}
• Toma valores de una lista de enteros mayores a 0 para ser incluidos
• > x[1:10] #toma los 10 primeros elementos de una lista
• > c(‘x’, ‘y’)[rep(c(1,2,2,1), times=4] #vector de 4 repeticiones de ‘x’, ‘y’, ‘y’, ‘x’
• Vector de cantidades integrales negativas:
• Especifica los valores a ser excluidos
• > y <- x[-(1:5)]
• Vector de caracteres:
• Funciona igual que las cantidades positivas salvo que es con nombres
Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

OTROS TIPOS DE OBJETOS


• Matrices -> generalizaciones multidimensionales de vectores
• Factores -> forma compacta de manejar datos categóricos
• Listas -> vectores compuestos por distintos tipos de elementos
• Data frames -> estructura tipo matriz, cada columna de distinto tipo
• Funciones -> objetos que pueden guardarse en el espacio de trabajo
del Proyecto

• > attributes(nombre)

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

DEFINIENDO LOS OBJETOS


• > as.character() • > as.list()
• > as.numeric() • > as.array()
• > as.data.frame() • > as.logical()
• > as.formula()
• > as.factor()
• > as.Date()
• > as.complex() • > unclass()
• > as.integer() …

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

FACTORES
• Objetos utilizados para especificar una clasificación discreta de los
componentes de otros vectores de igual longitud.
• > levels(factor)
• > tapply(obj, fact, func) #aplica funciones a cada grupo (de uno o más
tipos) del primer elemento separado por niveles
• > table() #tabla de frecuencias para factores de igual longitud
• > cut() #agrupa variables numéricas

> statefr <- table(statef)


> statefr <- tapply(statef, statef, length)
> factor(cut(incomes, breaks = 35+10*(0:7))) -> incomef
> table(incomef,statef)

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

> dep <- c(“ant", “cun", “cor", “nar", “ama“


print(dep)
“ant", “cun", “cor", “nar", “ama“)

depf <- factor(dep) print(depf)

¿¿¿Diferencias???

levels labels categoría

> pob <- c(6.3, 2.9, 1.8, 1.7, 0.7, print(pob)


6.2, 2.5, 1.6, 1.7, 0.8,
6.1, 2.5, 1.5, 1.7, 0.7) tapply(X = pob, INDEX = depf, FUN = mean)
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

LISTAS
• Lista: conjunto ordenado de objetos conocidos como componentes
• Lst <- list(name="Fred", wife="Mary", no.children=3, child.ages=c(4,7,9))
• Lst <- list(name_1=object_1, ..., name_m=object_m)

• Los componentes están enumerados Lst[[4]][1] y pueden ser nombrados ($)


• > length(Lst) #número de componentes

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

DATA FRAMES state.x77

• Listas con restricciones:


• Los componentes pueden ser vectores, factores, matrices numéricas, listas, o
data frames.
• Todos los elementos deben tener la misma longitud.
• > read.table()
• > read.xlsx() [OPENXLSX]
• > attach() #toma una base de datos como argumento
• > detach()
• > search() #muestra el path -> ayuda a seguir los data frames, listas y paquetes attached
o detached

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

FÓRMULAS
• respuesta ~ op_1 term_1 op_2 term_2 op_3 term_3 ...

• Respuesta = vector o matriz que define la variable de respuesta


• Op_i = operador de inclusión o exclusión de términos (+ o -)
• Term_i = puede ser...
• Vactor o matriz, factor, número, expresión de fórmula (con factores, vectores o matrices)
conectadas por operadores de fórmula

> xtabs(formula = ___,data = ___,subset = ___)

Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.
INTRODUCCIÓN A R
DANIEL VASQUEZ BOTERO

RELACIONES EN LAS FÓRMULAS


• Y ~ M -> Y se modela como M (similar en muchas funciones a ~ Y + M)

• M_1 + M_2 -> Incluir M1 y M2


• M_1 - M_2 -> Incluir M1 excluyendo los elementos M2
• M_1 : M_2 -> Producto tensorial de ambos. Si son factores, de las
subclases
• M_1 %in% M_2 -> Similar al anterior

• M_1 * M_2 M_1 + M_2 + M_1:M_2.


• M_1 / M_2 M_1 + M_2 %in% M_1.
Venables WN, Smith DM. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics versión 3.6.1. 2019.

También podría gustarte