2026-08-14

Carga y procesamiento de datos

Por medio de R se pueden utilizar distintos orígenes de datos:

  • Escritos directamente desde R
  • Importados desde archivos de bases de datos estructuradas (.csv, .xlsx, .dta, .spss)
  • Construidos a partir de datos no estructurados

La elección de librería depende del formato: haven (Stata/SPSS), readxl (Excel), entre otras.

Lectura de archivo

Ejemplo: importar la base de la Encuesta Permanente de Hogares (EPH) individual, primer trimestre 2026, con read.csv().

df <- read.csv(file = "datos/usu_individual_T126.txt", 
                header = TRUE, 
                sep = ";", 
                dec = ",")

El archivo queda cargado en el objeto df en el Environment de RStudio: 43.739 observaciones y 234 variables.

Acceder a variables dentro de un data frame

Se accede a una variable con el signo $.

Ejemplo: promedio de edad (CH06) con la función mean().

mean(df$CH06)

Para guardar el resultado como objeto:

edad_media <- mean(df$CH06)

Filtros con [ ]

Un data frame tiene dos dimensiones (filas y columnas). La selección se hace como df[filas, columnas].

Edad promedio de hombres (CH04 == 1):

edad_media_hombres <- mean(df[df$CH04 == 1, ]$CH06)

Edad promedio de mujeres (CH04 == 2):

edad_media_mujeres <- mean(df[df$CH04 == 2, ]$CH06)

Librería dplyr

Ofrece funciones para manipular bases de datos: filtrar, crear variables, ordenar, agrupar, etc.

Incorpora el operador pipe %>%:

  • Toma los datos a su izquierda
  • Los transforma según el comando de la derecha
  • Permite trabajar en forma secuencial, evitando el anidado excesivo

Filtros con dplyr

Edad promedio de los hombres, usando filter():

df %>% 
  filter(CH04 == 1) %>% 
  summarise(mean(CH06))

Renombrar variables

La función rename() cambia el nombre de una variable:

df %>% rename(nombre_nuevo = nombre_viejo)

df <- df %>% rename(edad = CH06)

df %>% filter(CH04 == 1) %>% summarise(mean(edad))

Crear nuevas variables: mutate

mutate() agrega una variable calculada a partir de otra/s.

Ejemplo: cuadrado de la edad.

df <- df %>% mutate(edad_2 = edad^2)
df %>% summarise(mean(edad_2))

Crear nuevas variables: case_when

Establece condiciones lógicas y asigna un valor según se cumplan (NA si ninguna aplica).

Variable sexo_edad: cuatro categorías por edad y sexo.

df <- df %>% mutate(edad_sexo = case_when(
  edad < 18  & CH04 == 1 ~ "hombre menor de edad",
  edad >= 18 & CH04 == 1 ~ "hombre mayor de edad",
  edad < 18  & CH04 == 2 ~ "mujer menor de edad",
  edad >= 18 & CH04 == 2 ~ "mujer mayor de edad"))

table(df$edad_sexo)

Seleccionar columnas: select

Permite crear un nuevo data frame con columnas específicas, o descartarlas.

df2 <- df %>% select(CH04, edad)
head(df2)

Para eliminar una variable:

df <- df %>% select(-edad_2)

Ordenar la base: arrange

Ordena el data frame según la/s variable/s especificada/s, en forma ascendente o descendente.

df2 <- df2 %>% arrange(edad)
head(df2)

Medidas descriptivas: summarise

Permite calcular estadísticas descriptivas: promedio, mediana, suma, varianza, desvío, mínimo, máximo.

df %>% summarise(
  promedio_edad = mean(edad), 
  mediana_edad = median(edad), 
  ds_edad = sd(edad), 
  max_edad = max(edad))

Agrupar variables: group_by

Permite hacer cálculos en forma agrupada por otra variable.

Ejemplo: edad promedio y mediana por sexo.

df %>% 
  group_by(CH04) %>%
  summarise(promedio = mean(edad), mediana = median(edad))

Ejemplo con la EPH: Tasa de desempleo

Variable ESTADO: 0 = Entrevista no realizada, 1 = Ocupado, 2 = Desocupado, 3 = Inactivo, 4 = Menor de 10 años.

tab1 <- df %>% 
  group_by(ESTADO) %>%
  summarise(personas = sum(PONDERA))

tab1

Cálculo de la tasa de desempleo

t_desempleo <- sum(tab1[tab1$ESTADO == 2, ]$personas) / 
  (sum(tab1[tab1$ESTADO == 1, ]$personas) + 
   sum(tab1[tab1$ESTADO == 2, ]$personas))

t_desempleo * 100

Tasa de desempleo por aglomerado

Filtrando previamente por AGLOMERADO == 6 (Gran Paraná):

tab2 <- df %>% 
  filter(AGLOMERADO == 6) %>%
  group_by(ESTADO) %>%
  summarise(personas = sum(PONDERA))

tab2

t_desempleo_pna <- sum(tab2[tab2$ESTADO == 2, ]$personas) / 
  (sum(tab2[tab2$ESTADO == 1, ]$personas) + 
   sum(tab2[tab2$ESTADO == 2, ]$personas))

t_desempleo_pna * 100