Semana 5

Author

Nathalia Báez

Published

June 7, 2026

Parte 1 — Leer el archivo CSV

tipo_de_columnas <- cols(
  id_empleado = col_character(),
  nombre = col_character(),
  departamento = col_character(),
  salario_mensual = col_double(),
  fecha_ingreso = col_date(format = "%Y-%m-%d"))

empleados_csv <- read_csv("empleados.csv", col_types = tipo_de_columnas)

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-…

Parte 2 — Leer el archivo Excel

hoja_2022 <- read_excel("empleados.xlsx", sheet = "2022")
hoja_2023 <- read_excel("empleados.xlsx", sheet = "2023")


empleados_excel <- bind_rows(
  hoja_2022 %>% mutate(anio = 2022),
  hoja_2023 %>% mutate(anio = 2023))

glimpse(empleados_excel)
Rows: 38
Columns: 5
$ id_empleado     <chr> "001", "002", "003", "004", "005", "006", "007", "009"…
$ 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> 55500, 42500, 60500, 38500, 49500, 67500, 62500, 36500…
$ anio            <dbl> 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, …
salario_medio_depto <- empleados_excel %>%
  group_by(departamento) %>%
  summarise(salario_promedio = mean(salario_mensual, na.rm = TRUE))

kable(salario_medio_depto, caption = "Salario Promedio por Departamento", digits = 2, align = "c")
Salario Promedio por Departamento
departamento salario_promedio
Auditoría 47357.14
Finanzas 48200.00
RRHH 39416.67
Riesgo 61000.00
Tecnología 61916.67

Parte 3 — Conectar a SQLite

con <- dbConnect(RSQLite::SQLite(), "empleados.db")

datos_para_sqlite <- hoja_2023 %>% 
  mutate(
    anio = 2023,
    monto_total_año = salario_mensual * 12 ) %>% 
  select(id_empleado, anio, monto_total_año)

dbWriteTable(con, "empleados", datos_para_sqlite, overwrite = TRUE)

consulta_filtrada_sql <- "SELECT id_empleado, anio, monto_total_año FROM empleados WHERE anio = 2023"
resultado_consulta <- dbGetQuery(con, consulta_filtrada_sql)

# Centra el ID, el Año y el Monto Total en el reporte HTML
kable(resultado_consulta, caption = "Datos recuperados de SQLite (Filtro: Año 2023)", align = "c")
Datos recuperados de SQLite (Filtro: Año 2023)
id_empleado anio monto_total_año
001 2023 696000
002 2023 540000
003 2023 756000
004 2023 492000
005 2023 624000
006 2023 840000
007 2023 780000
008 2023 576000
009 2023 468000
010 2023 708000
011 2023 732000
012 2023 564000
013 2023 636000
014 2023 660000
015 2023 804000
016 2023 612000
017 2023 504000
018 2023 552000
019 2023 864000
020 2023 696000
dbDisconnect(con)

```