Espacio "presencial": 8 talleres de 2,5 horas cada uno
Participar durante la clase a través del chat de zoom o pedir la palabra.
Examen opcional
Dedicación: durante el curso y después ... es la clave
Comunicación: foro y mail
Introducción al lenguaje R usando RStudio aplicado a la ECH.
Manejar un gran conjunto de funciones: básicas y más avanzadas
Generar autonomía para usar R y seguir aprendiendo después del curso.
Introducir el paquete ech para lograr rápidamente:
Calcular nuevas variables.
Estimar indicadores: estimación puntual y por intervalo
Crea visualizaciones atractivas e informativas.
Programa estadístico: análisis
Lenguaje de programación: sintaxis
Software gratuito, se desacarga desde CRAN.
Software libre: licencia GNU. Libertad de uso, modificación y distribución.
Comunidad mundial: lo usa y mejora. Casi 20.000 paquetes en CRAN) y github
Comunidad en Uruguay: meetup R-Ladies y meetup GURU
Al inicio suele ser empinada
El curso busca seguir un camino menos empinado pero que nos lleve lejos.
Al abrir RStudio vemos el panel llamado "Console" que es la consola de R.
R inicia con un mensaje de apertura que indica entre otras cosas, la versión.
Es un lenguaje de programación: escribimos código en la consola para darle órdenes a R.
Las órdenes elementales de R consisten en expresiones o asignaciones.
Es un lenguaje de programación: escribimos código en la consola para darle órdenes a R.
Las órdenes elementales de R consisten en expresiones o asignaciones.
2 + 3
[1] 5
Es un lenguaje de programación: escribimos código en la consola para darle órdenes a R.
Las órdenes elementales de R consisten en expresiones o asignaciones.
2 + 3
[1] 5
x <- 2 + 3
x <- 2 + 3
x <- 2 + 3
x <- 2 + 3
x
[1] 5
18 + 9
[1] 27
18 - 9
[1] 9
18 * 9
[1] 162
18 / 9
[1] 2
# valor absolutoabs(-1)
[1] 1
# valor absolutoabs(-1)
[1] 1
# valor absolutoabs(-1)
[1] 1
# exponencialexp(0)
[1] 1
# valor absolutoabs(-1)
[1] 1
# exponencialexp(0)
[1] 1
# raíz cuadradasqrt(9)
[1] 3
?sqrt help("sqrt")
Ayuda en R:
Ayuda externa a R:
La ventana de script colorea y autocompleta código. Muestra el help de la función.
La cantidad de clases de objetos es muy grande y crece permanentemente a medida que se crean nuevos paquetes.
Objeto | Dimensión o largo | Tipo de elementos | Ejemplo |
---|---|---|---|
Vector | length() | homogéneos | |
Matriz | dim() | homogéneos | |
Marco de datos | dim() | heterogéneos | |
Lista | length() | heterogéneos | |
x <- c(15, 16, 17, 19)
x <- c(15, 16, 17, 19)
x
[1] 15 16 17 19
x <- c(15, 16, 17, 19)
x
[1] 15 16 17 19
class(x)
[1] "numeric"
Se crea con la función c(), y contiene solo números separados por coma.
El separador de decimales es el punto.
Para el caso de texto, la clase "character" es la que utiliza R para manejar este tipo de objetos.
Al igual que en la mayoría de los lenguajes de programación, R utiliza las comillas dobles (") o simples (') para delimitar un string.
w <- c("lunes", "martes", "miércoles", "viernes")
Para el caso de texto, la clase "character" es la que utiliza R para manejar este tipo de objetos.
Al igual que en la mayoría de los lenguajes de programación, R utiliza las comillas dobles (") o simples (') para delimitar un string.
w <- c("lunes", "martes", "miércoles", "viernes")
w
[1] "lunes" "martes" "miércoles" "viernes"
Para el caso de texto, la clase "character" es la que utiliza R para manejar este tipo de objetos.
Al igual que en la mayoría de los lenguajes de programación, R utiliza las comillas dobles (") o simples (') para delimitar un string.
w <- c("lunes", "martes", "miércoles", "viernes")
w
[1] "lunes" "martes" "miércoles" "viernes"
class(w)
[1] "character"
character
también puede incluir números siempre que estén entre comillasw <- c("15", "16", "17", "19")
character
también puede incluir números siempre que estén entre comillasw <- c("15", "16", "17", "19")
w
[1] "15" "16" "17" "19"
character
también puede incluir números siempre que estén entre comillasw <- c("15", "16", "17", "19")
w
[1] "15" "16" "17" "19"
class(w)
[1] "character"
Crea un objeto llamado nombre
con tu nombre escrito todo en minúscula
<br
Crea un objeto llamado apellido
con tu apellido escrito todo en minúscula
Crea un objeto llamado edad
con tu edad en números
Pregunta la clase de cada uno de esos objetos e imprime el contenido de cada objeto.
Crea un objeto llamado nombre_completo
que contenga tu nombre y tu apellido, reutilizando los objetos creados. La función paste() puede ser de ayuda.
¿Cuántos caracteres tiene el objeto nombre, y el objeto apellido? La función nchar()
puede ser de ayuda.
z <- c("lunes", 15)
z <- c("lunes", 15)
z
[1] "lunes" "15"
class(z)
[1] "character"
z <- c("lunes", 15)
z
[1] "lunes" "15"
class(z)
[1] "character"
Si se combinan objetos de diferentes tipos, R reasigna los elementos a la clase apropiada. Esto se llama coerción.
character
.
character
.
character
.
character
.
R vectoriza las operaciones de manera que si sumo un número a un vector numérico, a cada elemento del vector le sumará ese número.
Esta propiedad es una ventaja ya que permite evitar loops en muchas de situaciones y de esta manera se obtiene un código más 'limpio' y eficiente.
El operador : sirve para generar vectores numéricos
x <- -1:4x
[1] -1 0 1 2 3 4
x + 5 # adiciono 5
[1] 4 5 6 7 8 9
x * 3 # multiplico por 3
[1] -3 0 3 6 9 12
x <- c("15", "16", "17", "19")mean(x)w + 5
df <- data.frame(x, w)
df <- data.frame(x, w)
df <- data.frame(x, w)
(teclado en español)
(teclado en español)
x1 <- c(2, 8, 3, 4, 1)x2 <- c(0, 7, 5, 5, 6, 1)pmax(x1, x2)
Warning in pmax(x1, x2): an argument will be fractionally recycled
[1] 2 8 5 5 6 2
La ECH releva información referente a la vivienda, el hogar y las personas:
Características de la vivienda
Características del hogar
Características de las personas que integran los hogares relevados
Es un paquete de R para facilitar el procesamientode la Encuesta Continua de Hogares.
En su versión actual admite trabajar con las ECH de 2011 a 2019.
Está pensado para trabajar con los microdatos fusionados (hogares y personas).
Está en proceso de aceptación en CRAN. Ahora disponible en github.
Lo desarrollo junto a Richard Detomasi.
Una puerta de entrada a R.
Democratizar el uso de la ECH, brindando una herramienta libre y gratuita.
Fomentar la publicación de código, no tan común por acá.
Al principio era rech y así lo presentamos en diferentes eventos de R.
Luego conocimos otros proyectos similares: eph (Argentina) y casen (Chile)... Cambiamos el nombre y quitamos la parte de visualización y Richard creó geouy
Función para descargar los microdatos desde la web del INE
Funciones para calcular variables: mercado de trabajo, ingresos, educación, etc.
Funciones para estimar indicadores: devuelven siempre un data.frame en formato tidy
Funciones para descargar los datos de IPC, IPAB, entre otros, también en un formato tidy.
Función para descargar el diccionario comparado entre bases de distintos años.
Documentación para facilitar su uso
Un paquete se instala una única vez.
Para instalarlo desde CRAN usamos la función install.packages() .
Para instalarlo desde github usamos la función install_github(). Esta función está en el paquete devtools, si no lo tenemos instalado debemos hacerlo.
# instalamos devtools desde CRANinstall.packages("devtools")
# instalamos ech desde githubdevtools::install_github("calcita/ech")
library(ech)
La función get_microdata() se encarga de:
descargar los microdatos del año indicado desde la web del INE
descomprimir el archivo
leer en R el archivo que contiene datos de personas y hogares fusionado
guardar el objeto en formato RData (opcional)
# leer archivo de 2019ech19 <- get_microdata(year = 2019, folder = "/home/calcita/Desktop", toR = FALSE)# consultar clase de objetoclass(ech19)
El archivo descargado, va por defecto a una carpeta temporal si no definimos una ruta en el argumento folder.
\\
# ver los primeros casos del objeto en la consolahead(ech19)
# A tibble: 3 x 8 numero nper anio mes dpto nomdpto secc segm <chr> <dbl> <chr> <dbl+lbl> <dbl+lbl> <chr> <chr> <chr>1 2019000001 1 2019 8 [Agosto] 14 [Rocha] ROCHA 00 000 2 2019000001 2 2019 8 [Agosto] 14 [Rocha] ROCHA 00 000 3 2019000002 1 2019 2 [Febrero] 15 [Salto] SALTO 00 000
# ver los últimos casos del objeto en la consolatail(ech19)# ver el conjunto de datos en un ventanaView(ech19)# ver que contiene directo en la consola. No recomendado!!!ech19
Las funciones dim() y names() admiten un data frame como argumento.
dim(ech19) # cantidad de filas y columnas
[1] 107871 556
nrow(ech19) # cantidad de filas
[1] 107871
ncol(ech19) # cantidad de columnas
[1] 556
names(ech19) # nombre de variablessort(names(ech19)) # ver los nombres por orden alfabético
Los nombres de las variables pueden sufrir modificaciones entre un año y otro de la encuesta.
La función organize_names() convierte todos los nombres a la ECH 2017
Las variables pueden sufrir entre un año y otro un cambio en sus categorías, esto se contempla en las funciones que crean variables.
Estandarizar los nombres facilita el uso de ech pero no es imprescindible.
# estandarizo nombresech19 <- organize_names(data = ech19, year = 2019)
La función summary() admite un data frame como argumento pero también una variable.
# estructura del objetostr(ech19)# resumen descriptivo de variablessummary(ech19)# una variable específicasummary(ech19$region_3)
Para acceder a una variable de un data frame es necesario escribir <objeto>$<variable>
La variable d9 es el "número de habitaciones residenciales".
# Máximomax(ech19$d9)
[1] 18
# Mínimomin(ech19$d9)
[1] 1
# Promediomean(ech19$d9)
[1] 3.657359
# Medianamedian(ech19$d9)
[1] 4
# Varianzavar(ech19$d9)
[1] 1.450789
# Desvío estándarsd(ech19$d9)
[1] 1.204487
La función table() permite hacer una tabla de frecuencias absolutas.
table(ech19$nomdpto)
ARTIGAS CANELONES CERRO LARGO COLONIA DURAZNO 2881 16543 3237 4398 2216 FLORES FLORIDA LAVALLEJA MALDONADO MONTEVIDEO 1113 2372 1946 5193 38207 PAYSANDU RIO NEGRO RIVERA ROCHA SALTO 4090 1896 3999 3207 4757 SAN JOSE SORIANO TACUAREMBO TREINTA Y TRES 4155 2732 3227 1702
# Tabla de frecuencias relativas?prop.table
La salida que generan estas funciones no es tidy y conforme más categorías tiene una variable se vuelve más confusa.
Espacio "presencial": 8 talleres de 2,5 horas cada uno
Participar durante la clase a través del chat de zoom o pedir la palabra.
Examen opcional
Dedicación: durante el curso y después ... es la clave
Comunicación: foro y mail
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |