Inicio

Esta página resume la información correspondiente a la fecha 4/8/2021 (último periodo publicado) sobre cantidad de puestos de trabajo y salarios brutos (expresados en pesos corrientes) según nivel educativo y género para todos los escalafones registrados en la Base Integrada de Empleo Público de la Subsecretaría de Empleo Público de la Nación. Además, se incluye la desagregación por organismos de las mismas variables para el escalafón SINEP.

Todos los escalafones registrados en la BIEP

Volver a Inicio

Tabla 1. Resumen del universo de la BIEP.

Fecha: 4/8/2021

BIEP_EDUCA %>% 
  summarise(
    "Cantidad de Puestos de Trabajo comprendidos" = sum(Puestos),
    "Masa Salarial Total (pesos corrientes)" = sum(Puestos*SBP),
    "Cantidad de Escalafones comprendidos" = n_distinct(BIEP_EDUCA$ESCALAFÓN),
    "Cantidad de Jurisdicciones comprendidas" = n_distinct(BIEP_EDUCA$Jurisdiccion),
    "Cantidad de Organismos comprendidos" = n_distinct(BIEP_EDUCA$Organismo)
  ) %>% 
  reshape2::melt() %>% 
  knitr::kable(format = "html", col.names = c("Variable","Total"), format.args = list(big.mark = ",")) %>% 
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "responsive"))
Variable Total
Cantidad de Puestos de Trabajo comprendidos 478,807
Masa Salarial Total (pesos corrientes) 63,266,539,182
Cantidad de Escalafones comprendidos 122
Cantidad de Jurisdicciones comprendidas 24
Cantidad de Organismos comprendidos 138

Tabla 2. Información de puestos de trabajo y salarios brutos por Escalafón.

Puestos de trabajo, porcentaje del total de puestos de trabajo, masa salarial, porcentaje del total de masa salarial, salario bruto promedio y desviación estándar del salario bruto promedio por escalafón. Fecha: 4/8/2021

tab2 <- BIEP_EDUCA %>% 
  group_by(ESCALAFÓN) %>% 
  summarise(
    "Puestos de Trabajo" = sum(Puestos),
    "% del total de Puestos de Trabajo" = round(100*sum(Puestos)/totalPuestosTrabajo, 4),
    "Masa Salarial (miles de pesos corrientes)" = round(sum(Puestos*SBP)/1000, 0),
    "% del total de Masa Salarial" = round(100*sum(Puestos*SBP)/totalMasaSalarial,4),
    "Salario Bruto Promedio (pesos corrientes)" = round(weighted.mean(SBP, Puestos), 0),
    "Desviación Estándar del Salario Bruto (pesos corrientes)" = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)), 0) )

tab2 %>%   
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100)))

Tabla 3. Valor de los Percentiles de Salario Bruto por Escalafón.

Cada columna indica el percentil expresados, los valores correspondientes están en pesos corrientes. Fecha: 4/8/2021

#creo un vector con los nombres de los escalafones
escalafones <- unique(BIEP_EDUCA$ESCALAFÓN)

#creo una tabla con los puestos de trabajo por escalafon
Puestos_escalafon <- BIEP_EDUCA %>%
  group_by(., ESCALAFÓN) %>%
  summarise(., Puestos = sum(Puestos))

#creo una tabla y listas vacías para usar en el loop for siguiente
rqEscalafones <- list()
for (i in escalafones) {
  dummy <- BIEP_EDUCA %>%
    filter(., ESCALAFÓN==i) %>%
    group_by(., SBP) %>%
    summarise(., Puestos = sum(Puestos))
  #la función rq no permite trabajar con matrices con una sola observación o sin observaciones
  #por eso uso IF para evitar que salga del loop
  if (sum(dummy[[2]])!=0) {
    rqEscalafones[i] <- rq(dummy[[1]] ~ 1, tau = 1:20/20, weights=unlist(dummy[[2]]))
  } else  {
    rqEscalafones[i] <- ("nodata")
  }
}

indiceEscalafones <- tibble(Escalafones = unique(BIEP_EDUCA$ESCALAFÓN)) %>% 
  separate(Escalafones, sep =  "-", into = "indexEscalafon", remove = F)

enframe(unlist(rqEscalafones)) %>% 
  add_column(tau =rep(seq(5,100, by = 5), times = length(rqEscalafones))) %>%
  separate(name, sep =  "-", into = "indexEscalafon") %>% 
  mutate(value = round(value, 0)) %>% 
  left_join(indiceEscalafones) %>% 
  select(-indexEscalafon) %>% 
  pivot_wider(names_from = tau) %>% 
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100)))

Tabla 4. Puestos de Trabajo y salarios brutos por nivel educativo según Escalafón.

Puestos de trabajo, porcentaje de puestos de trabajo del escalafón, salario bruto promedio y desviación estándar del salario bruto por nivel educativo según escalafón. Fecha: 4/8/2021

BIEP_EDUCA %>% 
  group_by(ESCALAFÓN, nvlEduca) %>% 
  summarise( n = sum(Puestos),
            "Salario Bruto Promedio (pesos corrientes)" = round(weighted.mean(SBP, Puestos), 0),
            "Desviación Estándar del Salario Bruto (pesos corrientes)" = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)), 0)) %>% 
  left_join(tab2,by = "ESCALAFÓN") %>% 
  mutate("% de los puestos del escalafón" = round(100*n/`Puestos de Trabajo`,2)) %>% 
  select(1,2,3,12,4,5) %>%
  rename("Puestos de Trabajo" = n,
         "Nivel Educativo" = nvlEduca,
         "Salario Bruto Promedio (pesos corrientes)" = `Salario Bruto Promedio (pesos corrientes).x`,
         "Desviación Estándar del Salario Bruto (pesos corrientes)" = `Desviación Estándar del Salario Bruto (pesos corrientes).x`) %>% 
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100)))

Tabla 5. Puestos de Trabajo y Salarios Brutos por Género según Escalafón.

Puestos de trabajo, porcentaje de puestos de trabajo del escalafón, salario bruto promedio y desviación estándar del salario bruto por género según escalafón. Fecha: 4/8/2021

BIEP_EDUCA %>% 
  group_by(ESCALAFÓN, SEXO) %>% 
  summarise("Puestos De Trabajo" = sum(Puestos),
            "Salario Bruto Promedio (pesos corrientes)" = round(weighted.mean(SBP, Puestos),0),
            "Desviación Estándar del Salario Bruto (pesos corrientes)" = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)),0)) %>% 
  left_join(tab2,by = "ESCALAFÓN") %>% 
  mutate("% de los puestos del escalafón" = round(100*`Puestos De Trabajo`/`Puestos de Trabajo`,2)) %>% 
  select(1,2,3,12,4,5) %>% 
  rename("Salario Bruto Promedio (pesos corrientes)" = `Salario Bruto Promedio (pesos corrientes).x`,
         "Desviación Estándar del Salario Bruto (pesos corrientes)" = `Desviación Estándar del Salario Bruto (pesos corrientes).x`) %>% 
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100)))

Tabla 6. Salario Bruto Promedio por Nivel Educativo y Género y Brecha Salarial de Género por Nivel Educativo en cada Escalafón.

La Brecha Salarial se calcula como la diferencia entre el salario bruto promedio femenino y salario bruto promedio masculino, expresada como puntos porcentuales de salario bruto promedio masculino. \(100*(SBP_{f}-SBP_{m})/SBP_{m}\) Aquí fue calculada para cada nivel educativo dentro de cada escalafón, puede haber valores faltantes debido a inexistencia de puestos de trabajo en alguna categoría o ausencia de su registro. Fecha: 4/8/2021

BIEP_EDUCA %>% 
  group_by(ESCALAFÓN, SEXO, nvlEduca) %>% 
  summarise(SBPi = round(weighted.mean(SBP,Puestos),0)) %>% 
  pivot_wider(names_from = SEXO, values_from = SBPi, names_prefix = "g" ) %>% 
  mutate(Brecha = round(100*(gF-gM)/gM,2)) %>% 
  rename("Nivel Educativo" = nvlEduca,
          "Salario Bruto Promedio femenino (pesos)" = gF,
          "Salario Bruto Promedio masculino (pesos)" = gM,
          "Brecha Salarial de género" = Brecha) %>% 
    DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100)))

Información por organismos para el escalafón SINEP

Volver a Inicio

Tabla 1. Puestos de Trabajo y Salarios Brutos por Organimo en el SINEP.

Fecha: 4/8/2021

sinep1 <- BIEP_EDUCA %>% 
    filter(ESCALAFÓN == "303 - SINEP") %>% 
  group_by(Jurisdiccion, Organismo) %>% 
  summarise(
    PuestosOrganismos = sum(Puestos),
    Mínimo = round(min(SBP),0),
    Media = round(weighted.mean(SBP, Puestos),0),
    SD = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)),0),
    Máximo =  round(max(SBP),0)
  )

sinep1 %>% 
  rename("Puestos de Trabajo" = PuestosOrganismos,
         "Salario Bruto Mínimo (pesos corrientes)" = Mínimo,
         "Salario Bruto Promedio (pesos corrientes)" = Media,
         "Desviación Estándar del Salario Bruto (pesos corrientes)" = SD,
         "Salario Bruto Máximo (pesos corrientes)" = Máximo) %>% 
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 125)))

Tabla 2. Puestos de Trabajo y Salario Bruto por Género según Organimo en el SINEP.

Fecha: 4/8/2021

sinep2 <- BIEP_EDUCA %>% 
    filter(ESCALAFÓN == "303 - SINEP") %>% 
  group_by(Jurisdiccion, Organismo, SEXO) %>% 
  summarise(
    PuestosGenero = sum(Puestos),
    Minimo = round(min(SBP),0),
    Media = round(weighted.mean(SBP, Puestos),0),
    SD = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)),0),
    Maximo =  round(max(SBP),0)
  ) %>% 
  right_join(sinep1[2:3], by = c("Organismo")) %>% 
  mutate(PuestosGenero_pp = round(100*PuestosGenero/PuestosOrganismos,1))

sinep2 %>% 
  mutate(SEXO = recode(SEXO, `F` = "Femenino", `M`= "Masculino")) %>% 
  select(1,2,3,4,10,5,6,7,8) %>% 
  rename("Puestos de Trabajo" = PuestosGenero,
         "Mínimo del Salario Bruto (pesos corrientes)" = Minimo,
         "Salario Bruto Promedio (pesos corrientes)" = Media,
         "Desviación Estándar del Salario Bruto  (pesos corrientes)" = SD,
         "Máximo del Salario Bruto  (pesos corrientes)" = Maximo,
         "% de los Puestos de Trabajo" = PuestosGenero_pp
         ) %>% 
    DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 125, 175)))

Tabla 3. Puestos de Trabajo y Salario Bruto por Nivel Educativo según Organimo en el SINEP.

Fecha: 4/8/2021

sinep3 <- BIEP_EDUCA %>% 
    filter(ESCALAFÓN == "303 - SINEP") %>% 
  group_by(Jurisdiccion,Organismo, nvlEduca) %>% 
  summarise( n = sum(Puestos),
            "Salario Bruto Promedio (pesos corrientes)" = round(weighted.mean(SBP, Puestos), 0),
            "Desviación Estándar  (pesos corrientes)" = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)), 0)) %>% 
  right_join(sinep1[2:3], by = c("Organismo")) %>% 
  mutate("% de los puestos del escalafón" = round(100*n/PuestosOrganismos,2)) %>% 
  select(1,2,3,4,8,5,6)


sinep3 %>% 
  rename("Puestos de Trabajo" = n,
         "Nivel Educativo" = nvlEduca) %>% 
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100,200)))

Tabla 4. Puestos de Trabajo y Salario Bruto por Tipo de Contratación según Organismo en el SINEP.

Fecha: 4/8/2021

sinep4 <- BIEP_EDUCA %>% 
    filter(ESCALAFÓN == "303 - SINEP") %>% 
  group_by(Jurisdiccion, Organismo, TIPO_CONTRATACION) %>% 
  summarise( n = sum(Puestos),
            "Salario Bruto Promedio (pesos corrientes)" = round(weighted.mean(SBP, Puestos), 0),
            "Desviación Estándar" = round(sqrt(Hmisc::wtd.var(SBP, weights = Puestos)), 0)) %>% 
  right_join(sinep1[2:3], by = c("Organismo")) %>% 
  mutate("% de los puestos del escalafón" = round(100*n/PuestosOrganismos,2)) %>% 
  select(1,2,3,4,8,5,6)

sinep4 %>% 
  rename("Puestos de Trabajo" = n) %>% 
  DT::datatable(filter = "top", options = list(
    lengthMenu = c(10, 25, 50, 100,200)))

Gráficos - Principales Organismos en el SINEP

Volver a Inicio

Gráfico 1. Salario Bruto Promedio en Organimos con más del 1% de los puestos de trabajo del SINEP.

Fecha: 4/8/2021

gsinep1 <- sinep1 %>% 
  mutate(Puestos_pp = 100*PuestosOrganismos/totalPuestosSinep) %>% 
  filter(Puestos_pp >= 1) %>% 
  ggplot(aes(x= reorder(Organismo, Media), y = Media, fill = Organismo))+
    geom_col()+
    scale_fill_viridis_d()+
  guides(fill = F)+
  labs(caption = paste(round(porcentaje, 1),"% del total de puestos de trabajo"))+
  theme_minimal()+
  coord_flip()+
  xlab("")+
  ylab("Salario Bruto Promedio")

ggplotly(gsinep1,
         tooltip = c("Media")) %>%
  layout(showlegend = FALSE)

Gráfico 2. Porcentaje de Contratados en los Puestos de Trabajo de cada Organismo

Fecha: 4/8/2021

gsinep2 <- sinep4 %>% 
  filter(TIPO_CONTRATACION == "Contratado") %>% 
  semi_join(filtroSinep) %>% 
  ggplot(aes(x= reorder(Organismo, `% de los puestos del escalafón`), y = `% de los puestos del escalafón`, fill = Organismo))+
    geom_col()+
    scale_fill_viridis_d()+
  guides(fill = F)+
  labs(caption = "Organismos con más del 1% de los puestos de trabajo del SINEP")+
  theme_minimal()+
  coord_flip()+
  ylab("% de Puestos de Trabajo")+
  xlab("")

ggplotly(gsinep2,
         tooltip = c("y")) %>%
  layout(showlegend = FALSE)

Gráfico 3. Brecha Salarial entre Puestos de Trabajo Contratados y Permanentes por Organimo en el SINEP

Aqui la Brecha Salarial se calcula como la diferencia entre el salario bruto promedio de puestos de trabajo contratados y el salario bruto promedio de los puestos de trabajo permanentes, expresada como puntos porcentuales de salario bruto promedio masculino. \(100*(SBP_{c}-SBP_{p})/SBP_{p}\) Fecha: 4/8/2021

gsinep3 <- sinep4 %>% 
  select(2,3,6) %>% 
  pivot_wider(names_from = TIPO_CONTRATACION, values_from = `Salario Bruto Promedio (pesos corrientes)`) %>% 
  semi_join(filtroSinep) %>% 
  mutate(Brecha = round(100*(Contratado-Permanente)/Permanente,2)) %>% 
  ggplot(aes(x = reorder(Organismo, Brecha), y = Brecha, fill = Brecha, label = Organismo))+
  geom_col()+
  scale_fill_viridis_c()+
  coord_flip()+
  guides(fill = F)+
  xlab("")+
  ylab("% del Salario Bruto Promedio para Permanente")+
  theme_minimal()

ggplotly(gsinep3,
         tooltip = c("y", "label"))

Grafico 4. Porcentaje de Puestos de Trabajo femeninos por Organismo en el SINEP

Fecha: 4/8/2021

gsinep4 <- sinep2 %>% 
  filter(SEXO == "F") %>% 
  semi_join(filtroSinep, by = "Organismo") %>% 
  rename("% de Puestos de Trabajo femeninos" = PuestosGenero_pp) %>% 
  ggplot(aes(x= reorder(Organismo,`% de Puestos de Trabajo femeninos`), y = `% de Puestos de Trabajo femeninos`, fill = Organismo))+
    geom_col()+
    scale_fill_viridis_d()+
  guides(fill = F)+
  labs(caption = "Organismos con más del 1% de los puestos de trabajo del SINEP")+
  theme_minimal()+
  coord_flip()+
  ylab("% de Puestos de Trabajo")+
  xlab("")

ggplotly(gsinep4,
         tooltip = c("y")) %>%
  layout(showlegend = FALSE)

Gráfico 5. Brecha Salarial de Género por Organismo en el SINEP

La Brecha Salarial se calcula como la diferencia entre el salario bruto promedio femenino y salario bruto promedio masculino, expresada como puntos porcentuales de salario bruto promedio masculino. \(100*(SBP_{f}-SBP_{m})/SBP_{m}\) Fecha:4/8/2021

gsinep5 <- sinep2 %>% 
  select(2,3,6) %>% 
  pivot_wider(names_from = SEXO, values_from = Media) %>% 
  semi_join(filtroSinep) %>% 
  mutate(Brecha = round(100*(`F`-M)/M,2)) %>% 
  ggplot(aes(x = reorder(Organismo, Brecha), y = Brecha, fill = Brecha, label = Organismo))+
  geom_col()+
  scale_fill_viridis_c()+
  coord_flip()+
  guides(fill = F)+
  xlab("")+
  ylab("% del Salario Bruto Promedio masculino")+
  theme_minimal()

ggplotly(gsinep5,
         tooltip = c("y", "label"))

Gráficos - Principales Escalafones en la BIEP

Volver a Inicio

Gráfico 1. Salario Bruto Promedio por escalafón 4/8/2021

g1 <- tab2 %>% 
  filter(tab2[5] >= 1) %>% 
  ggplot(aes(x = reorder(ESCALAFÓN, `Salario Bruto Promedio (pesos corrientes)`), y = `Salario Bruto Promedio (pesos corrientes)`, color = ESCALAFÓN))+
  geom_point(size=2)+
  geom_segment(aes(x = ESCALAFÓN, xend = ESCALAFÓN, y = 0, yend = `Salario Bruto Promedio (pesos corrientes)`), size=2)+
  scale_color_viridis_d()+
  scale_y_continuous(labels = scales::comma, breaks = c(50000,100000,200000,400000,600000))+
  theme_minimal()+
  guides(color = F)+
  xlab("")+
  ylab("pesos corrientes")+
  coord_flip()

ggplotly(g1,
         tooltip = c("y")) %>%
  layout(showlegend = FALSE)

Gráfico 2. Porcentaje de Puestos de Trabajo por Nivel Educativo en cada Escalafón. 4/8/2021

escalafonesSeleccionados <-  tab2 %>% 
  filter(tab2[5] >= 1)

g2 <- BIEP_EDUCA %>% 
  group_by(ESCALAFÓN, nvlEduca) %>% 
  summarise(PT = sum(Puestos),
            MS = sum(Puestos*SBP)) %>% 
  inner_join(escalafonesSeleccionados, by = "ESCALAFÓN") %>% 
  mutate("% de Puestos de Trabajo" = round(100*PT/`Puestos de Trabajo`,2)) %>% 
  ggplot(aes(x = nvlEduca, y = `% de Puestos de Trabajo`, fill = nvlEduca)) +
  geom_col() +
  scale_fill_viridis_d() +
  facet_wrap(vars(ESCALAFÓN), ncol = 4)+
  scale_y_continuous(breaks = c(0,25,50,75,100))+
  coord_flip()+
  theme_minimal()

g2 <- g2+theme(legend.position = "top",strip.text.x = element_text(hjust = 0)) +
  guides(fill =  F) +
  ylab("% de puestos de trabajo del escalafón") +
  xlab("")

ggplotly(g2,
         tooltip = c("y")) %>%
   layout(legend = list(orientation = "h",
                        xanchor = "left",
                       y = 10,
                     x = 0))

Gráfico 3. Brecha Salarial de Género por Escalafón

La Brecha Salarial se calcula como la diferencia entre el salario bruto promedio femenino y salario bruto promedio masculino, expresada como puntos porcentuales de salario bruto promedio masculino. \(100*(SBP_{f}-SBP_{m})/SBP_{m}\) Fecha: 4/8/2021

a <- BIEP_EDUCA %>% 
  filter(SEXO == "F") %>%
  group_by(ESCALAFÓN) %>% 
  summarise( SBP = weighted.mean(SBP, Puestos))

b <- BIEP_EDUCA %>% 
  filter(SEXO == "M") %>%
  group_by( ESCALAFÓN) %>% 
  summarise( SBP = weighted.mean(SBP, Puestos))

c <- left_join(a, b, by = "ESCALAFÓN") %>% 
  mutate( Brecha = round(100*(SBP.x - SBP.y)/SBP.y,2)) %>% 
  semi_join(escalafonesSeleccionados)

g3 <- c %>% 
  ggplot(aes(
    x = reorder(ESCALAFÓN, Brecha),
    y = Brecha,
    fill = Brecha,
    label = ESCALAFÓN
  )) +
  geom_col() + 
  scale_y_continuous(labels = scales::comma, breaks = c(-20,-15,-10,-5,0,5)) +
  scale_fill_viridis_c()+
  theme_minimal()

g3 <- g3 +
  ylab("% del salario promedio masculino") +
  xlab("") +
  guides(fill=F)+
  coord_flip()

ggplotly(g3,
         tooltip = c("y","label"))

Gráficos - Series de tiempo 2016-2020 Principales Escalafones en la BIEP

Volver a Inicio

Gráfico 1. Evolución del Nivel del Salario Real según Escalafón

Este gráfico representa el nivel del salario real para cada escalafón tomando como base igual a 100 noviembre del año 2017. Para el calculo de esta variable primero se calcula el salario real de cada año como el cociente entre el promedio de los conceptos fijos percibidos y el indice de precios al consumidor nacional de nivel general. Se toma el salario real del año 2017 como base igual a 100 y el resto de los años se expresa como porcentaje en relación a ese año base.

#datos de año base 2017

ipc <- ipc %>% 
  mutate(`PERIODO_FECHA` =
           case_when(
             indice_tiempo == "2016-12-01" ~ lubridate::ymd("2016-11-01"),
             TRUE ~ lubridate::ymd(indice_tiempo)
           ))

#datos de año base 2017
base_BIEP_EDUCA <- BIEP_EDUCA_temp %>% 
  left_join(escalafonesSeleccionados) %>% 
  group_by(`PERIODO_FECHA`, ESCALAFÓN) %>% 
  summarise(base2017 = weighted.mean(CFP, Puestos)) %>% 
  filter(`PERIODO_FECHA` == "2017-11-01") %>% 
  left_join(ipc) %>% 
  mutate(
    salarioRealbase = base2017/ipc_nivel_general_nacional
  ) %>% 
  select(2,6)

serie_variacion_CFP <- 
  BIEP_EDUCA_temp %>% 
  semi_join(ipc) %>% 
  semi_join(escalafonesSeleccionados) %>% 
  group_by(`PERIODO_FECHA`, ESCALAFÓN) %>% 
  summarise(CFP = weighted.mean(CFP,Puestos)) %>% 
  left_join(ipc) %>% 
  mutate(salarioReal = CFP/ipc_nivel_general_nacional) %>% 
  inner_join(base_BIEP_EDUCA, by = c("ESCALAFÓN")) %>% 
  mutate(nivelSalarioReal = round(100*salarioReal/salarioRealbase,2))

cfp_timeGraf <- serie_variacion_CFP %>% 
  ggplot(aes(x = `PERIODO_FECHA.x`, y = nivelSalarioReal, color = ESCALAFÓN, label = ESCALAFÓN))+
  geom_line()+
  geom_point()+
  scale_color_viridis_d()+
  theme_minimal()+
  scale_x_date(breaks = unique(serie_variacion_CFP$`PERIODO_FECHA.x`))+
  xlab("Año")+
  ylab("Nivel del Salario Real")+
  guides(color = F)

ggplotly(cfp_timeGraf,
         tooltip = c("label","y")) %>% 
   layout(legend = list(orientation = "h",
                        xanchor = "left",
                       y = 10,
                     x = 0))

Gráfico 2. Evolución del Porcentaje de Puestos de Trabajo Femeninos por Escalafón

genero_civil <- BIEP_EDUCA_temp %>% 
  filter(SEXO != "O") %>% 
  group_by(`PERIODO_FECHA`, ESCALAFÓN, SEXO) %>% 
  summarise(
    SBPwm = weighted.mean(SBP, Puestos),
    PuestosSum = sum(Puestos)
  ) %>% 
  pivot_wider(names_from = SEXO, values_from = c("SBPwm","PuestosSum") ) %>% 
  mutate(
    Brecha = round(100*(SBPwm_F-SBPwm_M)/SBPwm_M,2),
    PuestosFem_pp = round(100*PuestosSum_F/(PuestosSum_F+PuestosSum_M))
  ) %>% 
  semi_join(escalafonesSeleccionados) 
#ver tema eje x con fechas, quedan mal las proporciones sino

pp_fem <- genero_civil %>% 
  ggplot(aes(x = `PERIODO_FECHA`,
             y = PuestosFem_pp, color = ESCALAFÓN, label = ESCALAFÓN))+
  geom_line()+
  geom_point()+
  scale_x_date(breaks = unique(genero_civil$`PERIODO_FECHA`))+
  theme_minimal()+
  theme(legend.position = "bottom")+
  xlab("Año")+
  ylab("% de puestos de trabajo femeninos")

ggplotly(pp_fem,
         tooltip = c("label","y")) %>% 
   layout(legend = list(orientation = "h",
                        xanchor = "left",
                       y = 10,
                     x = 0))

Gráfico 3. Evolución de la Brecha Salarial de Género por Escalafón

La Brecha Salarial se calcula como la diferencia entre el salario bruto promedio femenino y salario bruto promedio masculino, expresada como puntos porcentuales de salario bruto promedio masculino.

brecha_timegraf <- genero_civil %>% 
  ggplot(aes(x = `PERIODO_FECHA`,
             y = Brecha, color = ESCALAFÓN, label = ESCALAFÓN))+
    geom_point()+
  geom_line()+
  scale_x_date(breaks = unique(genero_civil$`PERIODO_FECHA`))+
  theme_minimal()+
  theme(legend.position = "bottom")+
  xlab("Año")+
  ylab("brecha como % del \n salario bruto promedio masculino")

ggplotly(brecha_timegraf,
         tooltip = c("label","y")) %>% 
   layout(legend = list(orientation = "h",
                        xanchor = "left",
                       y = 10,
                     x = 0))