library(tidyverse)
library(funModeling)
library(gt)
library(scales)


fuente <- "Fuente: Encuesta KIWI de Sueldos de RRHH"

col_genero <- c("#8624F5", "#1FC3AA")


sueldos <- read_delim("https://raw.githubusercontent.com/r4hr/r4hr_introduccion_dplyr/main/Datos/encuesta_sueldos.csv", delim = ",")


resumen_numerico <- profiling_num(sueldos)
percentil_05 <- resumen_numerico[6,6]
percentil_95 <- resumen_numerico[6,10]

sueldos <- sueldos %>%
  filter(between(sueldo_bruto, percentil_05, percentil_95),
        aumento < 100,
        anios_rh < 40)

Este es un ejercicio de práctica, realizado durante el curso “Introducción a R para RRHH” de Data 4HR. Si quieren saber más, pueden visitar mi perfil en LinkedIn.

Análisis de sueldos de RRHH por puesto

sueldos <- sueldos %>%
  mutate(puesto = factor(puesto,
                        levels = c("Administrativo", "Analista", "HRBP",
                                    "Responsable", "Jefe", "Gerente", "Director")))

puestos <- sueldos %>%
  group_by(puesto) %>%
  summarise(sueldo_promedio = mean(sueldo_bruto))

ggplot(puestos, aes(x = sueldo_promedio, y = puesto)) +
  geom_col() +
  labs(title = "Sueldo mensual promedio por puesto",
    subtitle = "En AR$",
    x = "", y="",
    caption = "Fuente: Encuesta KIWI de Sueldos de RRHH")

Tabla de Sueldos

gt(puestos) %>%
   tab_header(title = "Sueldo promedio por puesto") %>%
   cols_label(puesto = "Puesto",
            sueldo_promedio = "Sueldo Promedio")
Sueldo promedio por puesto
Puesto Sueldo Promedio
Administrativo 49780.73
Analista 66883.48
HRBP 97824.48
Responsable 76715.26
Jefe 107026.29
Gerente 150776.96
Director 108338.00

Dispersión de sueldos por puesto y género

ggplot(sueldos, aes(x = puesto, y = sueldo_bruto, fill = genero)) +
  geom_boxplot() +
  labs(title = "Dispersión de sueldos por puesto y género",
    x = "", y = "",
    caption = fuente) +
  scale_y_continuous(labels = comma_format(big.mark = ".", decimal.mark = ",")) +
  scale_fill_manual(values = col_genero)

Relación entre años de experiencia y sueldo

modelo_lineal <- broom::tidy(lm(data = sueldos,
                                sueldo_bruto ~ anios_rh))

modelo_lineal$estimate <- dollar(modelo_lineal$estimate,
                                prefix = "AR$ ",    # Podemos controlar el símbolo utilizado
                                big.mark = ".",     # Cambia el separador de miles
                                decimal.mark = ",") # Cambia el separador decimal


ggplot(sueldos, aes(x = anios_rh, y = sueldo_bruto)) +
  geom_point(alpha = .4, size = 1.5) +
  geom_smooth(method = "lm") +
  labs(title = "Relación entre años de experiencia y sueldos de RRHH",
    subtitle = "En pesos argentinos",
    x = "Años de Experiencia",
    y = "Sueldo Bruto",
    caption = fuente) +
  scale_y_continuous(labels = comma_format(big.mark = ".", decimal.mark = ","))

En promedio, una persona con cero años de experiencia en RRHH cobra un sueldo bruto de AR$ 58.816,23. Y con cada año de experiencia, el sueldo aumenta en AR$ 2.856,24.

LS0tDQp0aXRsZTogIlJlbGV2YW1pZW50byBQYXJjaWFsIFN1ZWxkb3MgZGUgUlJISCBBcmdlbnRpbmEiDQpzdWJ0aXRsZTogIkN1cnNvIEludHJvZHVjY2nDs24gYSBSIHBhcmEgUlJISCINCmF1dGhvcjogIlNlcmdpbyBkZSBEYXRhIDRIUiINCmRhdGU6ICIwNS8wMy8yMDIyIg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICB0aGVtZTogc3BhY2VsYWINCiAgICBoaWdobGlnaHQ6IHB5Z21lbnRzDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFKQ0KYGBgDQoNCmBgYHtyIGxpYnJlcmlhcy1kYXRvc30NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShmdW5Nb2RlbGluZykNCmxpYnJhcnkoZ3QpDQpsaWJyYXJ5KHNjYWxlcykNCg0KDQpmdWVudGUgPC0gIkZ1ZW50ZTogRW5jdWVzdGEgS0lXSSBkZSBTdWVsZG9zIGRlIFJSSEgiDQoNCmNvbF9nZW5lcm8gPC0gYygiIzg2MjRGNSIsICIjMUZDM0FBIikNCg0KDQpzdWVsZG9zIDwtIHJlYWRfZGVsaW0oImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9yNGhyL3I0aHJfaW50cm9kdWNjaW9uX2RwbHlyL21haW4vRGF0b3MvZW5jdWVzdGFfc3VlbGRvcy5jc3YiLCBkZWxpbSA9ICIsIikNCg0KDQpyZXN1bWVuX251bWVyaWNvIDwtIHByb2ZpbGluZ19udW0oc3VlbGRvcykNCnBlcmNlbnRpbF8wNSA8LSByZXN1bWVuX251bWVyaWNvWzYsNl0NCnBlcmNlbnRpbF85NSA8LSByZXN1bWVuX251bWVyaWNvWzYsMTBdDQoNCnN1ZWxkb3MgPC0gc3VlbGRvcyAlPiUNCiAgZmlsdGVyKGJldHdlZW4oc3VlbGRvX2JydXRvLCBwZXJjZW50aWxfMDUsIHBlcmNlbnRpbF85NSksDQogICAgIAlhdW1lbnRvIDwgMTAwLA0KICAgICAJYW5pb3NfcmggPCA0MCkNCmBgYA0KDQpFc3RlIGVzIHVuIGVqZXJjaWNpbyBkZSBwcsOhY3RpY2EsIHJlYWxpemFkbyBkdXJhbnRlIGVsIGN1cnNvICoqIkludHJvZHVjY2nDs24gYSBSIHBhcmEgUlJISCIqKiBkZSBbRGF0YSA0SFJdKGh0dHBzOi8vZGF0YS00aHIuY29tKS4gU2kgcXVpZXJlbiBzYWJlciBtw6FzLCBwdWVkZW4gdmlzaXRhciBbbWkgcGVyZmlsIGVuIExpbmtlZEluXShodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vc2VyZ2lvZ2FyY2lhbW9yYS8pLg0KDQojIEFuw6FsaXNpcyBkZSBzdWVsZG9zIGRlIFJSSEggcG9yIHB1ZXN0bw0KDQpgYGB7ciBwdWVzdG9zfQ0Kc3VlbGRvcyA8LSBzdWVsZG9zICU+JQ0KICBtdXRhdGUocHVlc3RvID0gZmFjdG9yKHB1ZXN0bywNCiAgICAgICAgICAgICAgICAgICAgIAlsZXZlbHMgPSBjKCJBZG1pbmlzdHJhdGl2byIsICJBbmFsaXN0YSIsICJIUkJQIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCSJSZXNwb25zYWJsZSIsICJKZWZlIiwgIkdlcmVudGUiLCAiRGlyZWN0b3IiKSkpDQoNCnB1ZXN0b3MgPC0gc3VlbGRvcyAlPiUNCiAgZ3JvdXBfYnkocHVlc3RvKSAlPiUNCiAgc3VtbWFyaXNlKHN1ZWxkb19wcm9tZWRpbyA9IG1lYW4oc3VlbGRvX2JydXRvKSkNCg0KZ2dwbG90KHB1ZXN0b3MsIGFlcyh4ID0gc3VlbGRvX3Byb21lZGlvLCB5ID0gcHVlc3RvKSkgKw0KICBnZW9tX2NvbCgpICsNCiAgbGFicyh0aXRsZSA9ICJTdWVsZG8gbWVuc3VhbCBwcm9tZWRpbyBwb3IgcHVlc3RvIiwNCiAgIAlzdWJ0aXRsZSA9ICJFbiBBUiQiLA0KICAgCXggPSAiIiwgeT0iIiwNCiAgIAljYXB0aW9uID0gIkZ1ZW50ZTogRW5jdWVzdGEgS0lXSSBkZSBTdWVsZG9zIGRlIFJSSEgiKQ0KDQpgYGANCg0KIyMgVGFibGEgZGUgU3VlbGRvcw0KDQpgYGB7cn0NCmd0KHB1ZXN0b3MpICU+JQ0KICAgdGFiX2hlYWRlcih0aXRsZSA9ICJTdWVsZG8gcHJvbWVkaW8gcG9yIHB1ZXN0byIpICU+JQ0KICAgY29sc19sYWJlbChwdWVzdG8gPSAiUHVlc3RvIiwNCiAgICAgICAgICAJc3VlbGRvX3Byb21lZGlvID0gIlN1ZWxkbyBQcm9tZWRpbyIpDQogDQpgYGANCg0KIyMgRGlzcGVyc2nDs24gZGUgc3VlbGRvcyBwb3IgcHVlc3RvIHkgZ8OpbmVybw0KDQpgYGB7cn0NCmdncGxvdChzdWVsZG9zLCBhZXMoeCA9IHB1ZXN0bywgeSA9IHN1ZWxkb19icnV0bywgZmlsbCA9IGdlbmVybykpICsNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBsYWJzKHRpdGxlID0gIkRpc3BlcnNpw7NuIGRlIHN1ZWxkb3MgcG9yIHB1ZXN0byB5IGfDqW5lcm8iLA0KICAgCXggPSAiIiwgeSA9ICIiLA0KICAgCWNhcHRpb24gPSBmdWVudGUpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hX2Zvcm1hdChiaWcubWFyayA9ICIuIiwgZGVjaW1hbC5tYXJrID0gIiwiKSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjb2xfZ2VuZXJvKQ0KYGBgDQoNCiMjIFJlbGFjacOzbiBlbnRyZSBhw7FvcyBkZSBleHBlcmllbmNpYSB5IHN1ZWxkbw0KDQpgYGB7cn0NCm1vZGVsb19saW5lYWwgPC0gYnJvb206OnRpZHkobG0oZGF0YSA9IHN1ZWxkb3MsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgCXN1ZWxkb19icnV0byB+IGFuaW9zX3JoKSkNCg0KbW9kZWxvX2xpbmVhbCRlc3RpbWF0ZSA8LSBkb2xsYXIobW9kZWxvX2xpbmVhbCRlc3RpbWF0ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCXByZWZpeCA9ICJBUiQgIiwJIyBQb2RlbW9zIGNvbnRyb2xhciBlbCBzw61tYm9sbyB1dGlsaXphZG8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCWJpZy5tYXJrID0gIi4iLCAJIyBDYW1iaWEgZWwgc2VwYXJhZG9yIGRlIG1pbGVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIAlkZWNpbWFsLm1hcmsgPSAiLCIpICMgQ2FtYmlhIGVsIHNlcGFyYWRvciBkZWNpbWFsDQoNCg0KZ2dwbG90KHN1ZWxkb3MsIGFlcyh4ID0gYW5pb3NfcmgsIHkgPSBzdWVsZG9fYnJ1dG8pKSArDQogIGdlb21fcG9pbnQoYWxwaGEgPSAuNCwgc2l6ZSA9IDEuNSkgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSArDQogIGxhYnModGl0bGUgPSAiUmVsYWNpw7NuIGVudHJlIGHDsW9zIGRlIGV4cGVyaWVuY2lhIHkgc3VlbGRvcyBkZSBSUkhIIiwNCiAgIAlzdWJ0aXRsZSA9ICJFbiBwZXNvcyBhcmdlbnRpbm9zIiwNCiAgIAl4ID0gIkHDsW9zIGRlIEV4cGVyaWVuY2lhIiwNCiAgIAl5ID0gIlN1ZWxkbyBCcnV0byIsDQogICAJY2FwdGlvbiA9IGZ1ZW50ZSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gY29tbWFfZm9ybWF0KGJpZy5tYXJrID0gIi4iLCBkZWNpbWFsLm1hcmsgPSAiLCIpKQ0KYGBgDQoNCkVuIHByb21lZGlvLCB1bmEgcGVyc29uYSBjb24gY2VybyBhw7FvcyBkZSBleHBlcmllbmNpYSBlbiBSUkhIIGNvYnJhIHVuIHN1ZWxkbyBicnV0byBkZSBgciBtb2RlbG9fbGluZWFsWzEsMl1gLiBZIGNvbiBjYWRhIGHDsW8gZGUgZXhwZXJpZW5jaWEsIGVsIHN1ZWxkbyBhdW1lbnRhIGVuIGByIG1vZGVsb19saW5lYWxbMiwyXWAuDQo=