Semana 05 - Lectura de Archivos y Bases de Datos

Author

Johamnely Mateo

Published

June 9, 2026

title: “Semana 05 - Lectura de Archivos y Bases de Datos” author: “Johamnely Mateo” date: today

format: html: toc: true number-sections: true code-fold: true

execute: warning: false message: false —

1 Introducción

En esta práctica se realiza un proceso de ingesta de datos utilizando tres fuentes distintas: archivos CSV, archivos Excel y una base de datos SQLite. Posteriormente se realizan consultas y análisis básicos para validar la correcta integración de los datos.

2 Librerías

Code
library(tidyverse)
library(readxl)
library(openxlsx)
library(DBI)
library(RSQLite)

3 Parte 1 - Lectura del archivo CSV

Se carga el archivo empleados.csv especificando manualmente los tipos de datos de cada columna.

Code
empleados_csv <- read_csv(
  "empleados.csv",
  col_types = cols(
    id_empleado = col_character(),
    nombre = col_character(),
    departamento = col_character(),
    salario_mensual = col_double(),
    fecha_ingreso = col_date()
  )
)

empleados_csv
# A tibble: 20 × 5
   id_empleado nombre         departamento salario_mensual fecha_ingreso
   <chr>       <chr>          <chr>                  <dbl> <date>       
 1 001         Ana Torres     Tecnología             58000 2019-03-15   
 2 002         Pedro Méndez   Auditoría              45000 2021-07-01   
 3 003         María López    Tecnología             63000 2018-11-20   
 4 004         Luis García    RRHH                   41000 2022-01-10   
 5 005         Carmen Díaz    Auditoría              52000 2020-05-30   
 6 006         Carlos Mendoza Tecnología             70000 2017-04-12   
 7 007         Elena Rostova  Riesgo                 65000 2021-09-18   
 8 008         Jorge Ortiz    Finanzas               48000 2023-02-05   
 9 009         Lucía Blanco   RRHH                   39000 2022-11-11   
10 010         Andrés Castro  Riesgo                 59000 2020-08-24   
11 011         Sofia Martínez Tecnología             61000 2019-06-30   
12 012         Ricardo Gómez  Auditoría              47000 2022-04-15   
13 013         Daniela Vega   Finanzas               53000 2021-01-20   
14 014         Manuel Soler   Tecnología             55000 2020-10-05   
15 015         Beatriz Luna   Riesgo                 67000 2018-05-14   
16 016         Roberto Peña   Auditoría              51000 2023-07-19   
17 017         Irene Castillo RRHH                   42000 2021-12-01   
18 018         Fernando Plaza Finanzas               46000 2022-08-10   
19 019         Gabriela Núñez Tecnología             72000 2016-11-03   
20 020         Héctor Vargas  Riesgo                 58000 2020-02-28   

3.1 Verificación de tipos de datos

Code
glimpse(empleados_csv)
Rows: 20
Columns: 5
$ id_empleado     <chr> "001", "002", "003", "004", "005", "006", "007", "008"…
$ nombre          <chr> "Ana Torres", "Pedro Méndez", "María López", "Luis Gar…
$ departamento    <chr> "Tecnología", "Auditoría", "Tecnología", "RRHH", "Audi…
$ salario_mensual <dbl> 58000, 45000, 63000, 41000, 52000, 70000, 65000, 48000…
$ fecha_ingreso   <date> 2019-03-15, 2021-07-01, 2018-11-20, 2022-01-10, 2020-…

4 Parte 2 - Lectura del archivo Excel

4.1 Crear archivo Excel de práctica

Code
datos_2022 <- empleados_csv %>%
  filter(format(fecha_ingreso,"%Y") <= "2022") %>%
  select(id_empleado,nombre,departamento,salario_mensual)

datos_2023 <- empleados_csv %>%
  select(id_empleado,nombre,departamento,salario_mensual)

lista_hojas <- list(
  "2022" = datos_2022,
  "2023" = datos_2023
)

write.xlsx(lista_hojas,"empleados.xlsx")

4.2 Leer ambos sheets

Code
sheet_2022 <- read_excel("empleados.xlsx", sheet = "2022")
sheet_2023 <- read_excel("empleados.xlsx", sheet = "2023")

4.3 Combinar los sheets

Code
empleados_excel <- bind_rows(
  mutate(sheet_2022, anio = 2022),
  mutate(sheet_2023, anio = 2023)
)

empleados_excel
# A tibble: 38 × 5
   id_empleado nombre         departamento salario_mensual  anio
   <chr>       <chr>          <chr>                  <dbl> <dbl>
 1 001         Ana Torres     Tecnología             58000  2022
 2 002         Pedro Méndez   Auditoría              45000  2022
 3 003         María López    Tecnología             63000  2022
 4 004         Luis García    RRHH                   41000  2022
 5 005         Carmen Díaz    Auditoría              52000  2022
 6 006         Carlos Mendoza Tecnología             70000  2022
 7 007         Elena Rostova  Riesgo                 65000  2022
 8 009         Lucía Blanco   RRHH                   39000  2022
 9 010         Andrés Castro  Riesgo                 59000  2022
10 011         Sofia Martínez Tecnología             61000  2022
# ℹ 28 more rows

4.4 Promedio salarial por departamento

Code
promedio_departamento <- empleados_excel %>%
  group_by(departamento) %>%
  summarise(
    promedio_salario = mean(salario_mensual),
    .groups = "drop"
  )

promedio_departamento
# A tibble: 5 × 2
  departamento promedio_salario
  <chr>                   <dbl>
1 Auditoría              48429.
2 Finanzas               49200 
3 RRHH                   40667.
4 Riesgo                 62250 
5 Tecnología             63167.

5 Parte 3 - Base de Datos SQLite

5.1 Crear conexión SQLite

Code
con <- dbConnect(
  SQLite(),
  "empleados.sqlite"
)

5.2 Crear tibble para almacenar en la base de datos

Code
empleados_bd <- tibble(
  id_empleado = c("001","002","003","004","005"),
  anio = c(2023,2023,2022,2023,2022),
  monto_total_año = c(
    696000,
    540000,
    756000,
    492000,
    624000
  )
)

empleados_bd
# A tibble: 5 × 3
  id_empleado  anio monto_total_año
  <chr>       <dbl>           <dbl>
1 001          2023          696000
2 002          2023          540000
3 003          2022          756000
4 004          2023          492000
5 005          2022          624000

5.3 Escribir tabla en SQLite

Code
dbWriteTable(
  con,
  "empleados",
  empleados_bd,
  overwrite = TRUE
)

5.4 Consultar registros del año 2023

Code
consulta_2023 <- dbGetQuery(
  con,
  "SELECT * FROM empleados
   WHERE anio = 2023"
)

consulta_2023
  id_empleado anio monto_total_año
1         001 2023          696000
2         002 2023          540000
3         004 2023          492000

5.5 Ver tablas disponibles

Code
dbListTables(con)
[1] "empleados"

5.6 Cerrar conexión

Code
dbDisconnect(con)

6 Conclusión

Durante esta práctica se trabajó con diferentes fuentes de datos utilizando herramientas del ecosistema Tidyverse y DBI. Se realizó la lectura de archivos CSV y Excel, la integración de información proveniente de múltiples hojas, el cálculo de estadísticas descriptivas y la creación y consulta de una base de datos SQLite. Estas actividades permiten comprender el flujo completo de ingesta y procesamiento de datos en R.