library(tidyverse)
library(readxl)
library(DBI)
library(RSQLite)Ingesta de 3 fuentes distintas
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)