Ingesta de 3 fuentes distintas

Author

Keyra Wagner

library(tidyverse)
library(readxl)
library(DBI)
library(RSQLite)

Parte 1: Lectura de CSV

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   
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: Lectura de Excel

datos_2022 <- read_excel(
  "empleados.xlsx",
  sheet = "2022"
)

datos_2023 <- read_excel(
  "empleados.xlsx",
  sheet = "2023"
)

datos_2022
# A tibble: 4 × 5
  id_empleado nombre         departamento salario_mensual fecha_ingreso      
        <dbl> <chr>          <chr>                  <dbl> <dttm>             
1           4 Luis García    RRHH                   41000 2022-01-10 00:00:00
2           9 Lucía Blanco   RRHH                   39000 2022-11-11 00:00:00
3          12 Ricardo Gómez  Auditoría              47000 2022-04-15 00:00:00
4          18 Fernando Plaza Finanzas               46000 2022-08-10 00:00:00
datos_2023
# A tibble: 2 × 5
  id_empleado nombre       departamento salario_mensual fecha_ingreso      
        <dbl> <chr>        <chr>                  <dbl> <dttm>             
1           8 Jorge Ortiz  Finanzas               48000 2023-02-05 00:00:00
2          16 Roberto Peña Auditoría              51000 2023-07-19 00:00:00
datos_2022 <- datos_2022 %>%
  mutate(anio = 2022)

datos_2023 <- datos_2023 %>%
  mutate(anio = 2023)

empleados_excel <- bind_rows(
  datos_2022,
  datos_2023
)

empleados_excel
# A tibble: 6 × 6
  id_empleado nombre      departamento salario_mensual fecha_ingreso        anio
        <dbl> <chr>       <chr>                  <dbl> <dttm>              <dbl>
1           4 Luis García RRHH                   41000 2022-01-10 00:00:00  2022
2           9 Lucía Blan… RRHH                   39000 2022-11-11 00:00:00  2022
3          12 Ricardo Gó… Auditoría              47000 2022-04-15 00:00:00  2022
4          18 Fernando P… Finanzas               46000 2022-08-10 00:00:00  2022
5           8 Jorge Ortiz Finanzas               48000 2023-02-05 00:00:00  2023
6          16 Roberto Pe… Auditoría              51000 2023-07-19 00:00:00  2023
promedio_departamento <- empleados_excel %>%
  group_by(departamento) %>%
  summarise(
    promedio_salario = mean(salario_mensual)
  )

promedio_departamento
# A tibble: 3 × 2
  departamento promedio_salario
  <chr>                   <dbl>
1 Auditoría               49000
2 Finanzas                47000
3 RRHH                    40000

Parte 3: SQLite

con <- dbConnect(
  SQLite(),
  "empresa.sqlite"
)
empleados_db <- 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_db
# 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
dbWriteTable(
  con,
  "empleados",
  empleados_db,
  overwrite = TRUE
)
empleados_2023 <- dbGetQuery(
  con,
  "SELECT * FROM empleados WHERE anio = 2023"
)

empleados_2023
  id_empleado anio monto_total_año
1         001 2023          696000
2         002 2023          540000
3         004 2023          492000
dbDisconnect(con)