Librerías

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)

Abrir base de datos

# file.choose()
BDD_FORM_BAJAS_2023 <- read_csv("/Users/danrwar/Desktop/Rstudio works/etapa 1/BDD_FORM_BAJAS_2023.csv")
## Rows: 279 Columns: 28
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (24): Apellidos, Nombre, Fecha de Nacimiento, Género, RFC, Fecha de Alta...
## dbl  (4): No., SD, CP, Número de Télefono
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Seleccionar las variables de Motivo de baja y Estado Civil en un nuevo data frame.

mbaja <- select(BDD_FORM_BAJAS_2023,`Motivo de Baja`,`Estado Civil`) %>% na.omit(mbaja)

Agrupar la categoría con diferentes nombres cambiando a el mismo nombre

mbaja$"Motivo de Baja"[mbaja$"Motivo de Baja" == "Inducida."] <- "Inducida"

mbaja$"Motivo de Baja"[mbaja$"Motivo de Baja" == "Inducida (Faltas)"] <- "Inducida por faltas"

mbaja$"Motivo de Baja"[mbaja$"Motivo de Baja" == "Inducida (Faltas no dio los tiempos)"] <- "Inducida"

Calcular los porcentajes por categoría y estado civil

porcentajes <- mbaja %>%
  group_by(`Estado Civil`, `Motivo de Baja`) %>%
  summarise(Frecuencia = n()) %>%
  group_by(`Estado Civil`) %>%
  mutate(Pct = scales::percent(Frecuencia / sum(Frecuencia)))
## `summarise()` has grouped output by 'Estado Civil'. You can override using the
## `.groups` argument.

Crear la gráfica de barras apliadas

plot <- ggplot(porcentajes, aes(x = `Estado Civil`, y = Frecuencia, fill = `Motivo de Baja`)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  theme(
    panel.grid.major = element_line(color = "grey", linewidth = 0.4, linetype = "dotted"),  # Líneas verticales
    panel.grid.minor = element_line(color = "grey", linewidth = 0.4, linetype = "dotted")  # Líneas horizontales
  )+
  ggtitle("Relación entre Motivo de Baja y Estado Civil")

Agregar etiquetas de porcentaje

plot + geom_text(aes(label = Pct), position = position_stack(vjust = 0.5),size=2)

Interpretación

Por lo que podemos ver en la gráfica, la gran mayoría de las bajas en todas las categorías son por separación voluntaria, lo que podría indicar una alta rotación de empleados en los trabajos de maquila o podría ser un indicador de que hay varias áreas de oportunidad en cuestión de amenidades, salarios, bonos, oportunidades de crecimiento en la empresa, traslado o prestaciones que la empresa ofrece además de las básicas dictadas por la ley.

LS0tCnRpdGxlOiAiwr9DdcOhbCBlcyBsYSByZWxhY2nDs24gZW50cmUgZWwgbW90aXZvIGRlIGJhamEgeSBlbCBlc3RhZG8gY2l2aWwgZGUgbG9zIGVtcGxlYWRvcz8iCmF1dGhvcjogIlJvZ2Vpcm8gRGFuaWVsIFJhbcOtcmV6IEdhcnphIEEwMTE3Nzg3NSIKZGF0ZTogIjIwMjMtMDktMDUiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUKICAgIHRoZW1lOiAidW5pdGVkIgotLS0KIyBMaWJyZXLDrWFzCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShnZ3Bsb3QyKQpgYGAKCiMgQWJyaXIgYmFzZSBkZSBkYXRvcwoKYGBge3J9CiMgZmlsZS5jaG9vc2UoKQpCRERfRk9STV9CQUpBU18yMDIzIDwtIHJlYWRfY3N2KCIvVXNlcnMvZGFucndhci9EZXNrdG9wL1JzdHVkaW8gd29ya3MvZXRhcGEgMS9CRERfRk9STV9CQUpBU18yMDIzLmNzdiIpCmBgYAoKIyBTZWxlY2Npb25hciBsYXMgdmFyaWFibGVzIGRlIE1vdGl2byBkZSBiYWphIHkgRXN0YWRvIENpdmlsIGVuIHVuIG51ZXZvIGRhdGEgZnJhbWUuCgpgYGB7cn0KbWJhamEgPC0gc2VsZWN0KEJERF9GT1JNX0JBSkFTXzIwMjMsYE1vdGl2byBkZSBCYWphYCxgRXN0YWRvIENpdmlsYCkgJT4lIG5hLm9taXQobWJhamEpCmBgYAoKIyBBZ3J1cGFyIGxhIGNhdGVnb3LDrWEgY29uIGRpZmVyZW50ZXMgbm9tYnJlcyBjYW1iaWFuZG8gYSBlbCBtaXNtbyBub21icmUKYGBge3J9CgptYmFqYSQiTW90aXZvIGRlIEJhamEiW21iYWphJCJNb3Rpdm8gZGUgQmFqYSIgPT0gIkluZHVjaWRhLiJdIDwtICJJbmR1Y2lkYSIKCm1iYWphJCJNb3Rpdm8gZGUgQmFqYSJbbWJhamEkIk1vdGl2byBkZSBCYWphIiA9PSAiSW5kdWNpZGEgKEZhbHRhcykiXSA8LSAiSW5kdWNpZGEgcG9yIGZhbHRhcyIKCm1iYWphJCJNb3Rpdm8gZGUgQmFqYSJbbWJhamEkIk1vdGl2byBkZSBCYWphIiA9PSAiSW5kdWNpZGEgKEZhbHRhcyBubyBkaW8gbG9zIHRpZW1wb3MpIl0gPC0gIkluZHVjaWRhIgpgYGAKCiMgQ2FsY3VsYXIgbG9zIHBvcmNlbnRhamVzIHBvciBjYXRlZ29yw61hIHkgZXN0YWRvIGNpdmlsCmBgYHtyfQpwb3JjZW50YWplcyA8LSBtYmFqYSAlPiUKICBncm91cF9ieShgRXN0YWRvIENpdmlsYCwgYE1vdGl2byBkZSBCYWphYCkgJT4lCiAgc3VtbWFyaXNlKEZyZWN1ZW5jaWEgPSBuKCkpICU+JQogIGdyb3VwX2J5KGBFc3RhZG8gQ2l2aWxgKSAlPiUKICBtdXRhdGUoUGN0ID0gc2NhbGVzOjpwZXJjZW50KEZyZWN1ZW5jaWEgLyBzdW0oRnJlY3VlbmNpYSkpKQpgYGAKCiMgQ3JlYXIgbGEgZ3LDoWZpY2EgZGUgYmFycmFzIGFwbGlhZGFzCmBgYHtyfQpwbG90IDwtIGdncGxvdChwb3JjZW50YWplcywgYWVzKHggPSBgRXN0YWRvIENpdmlsYCwgeSA9IEZyZWN1ZW5jaWEsIGZpbGwgPSBgTW90aXZvIGRlIEJhamFgKSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZSgKICAgIHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2xpbmUoY29sb3IgPSAiZ3JleSIsIGxpbmV3aWR0aCA9IDAuNCwgbGluZXR5cGUgPSAiZG90dGVkIiksICAjIEzDrW5lYXMgdmVydGljYWxlcwogICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmV5IiwgbGluZXdpZHRoID0gMC40LCBsaW5ldHlwZSA9ICJkb3R0ZWQiKSAgIyBMw61uZWFzIGhvcml6b250YWxlcwogICkrCiAgZ2d0aXRsZSgiUmVsYWNpw7NuIGVudHJlIE1vdGl2byBkZSBCYWphIHkgRXN0YWRvIENpdmlsIikKCmBgYAoKIyBBZ3JlZ2FyIGV0aXF1ZXRhcyBkZSBwb3JjZW50YWplCmBgYHtyfQpwbG90ICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IFBjdCksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpLHNpemU9MikKYGBgCgojIEludGVycHJldGFjacOzbgojIyMjIFBvciBsbyBxdWUgcG9kZW1vcyB2ZXIgZW4gbGEgZ3LDoWZpY2EsIGxhIGdyYW4gbWF5b3LDrWEgZGUgbGFzIGJhamFzIGVuIHRvZGFzIGxhcyBjYXRlZ29yw61hcyBzb24gcG9yIHNlcGFyYWNpw7NuIHZvbHVudGFyaWEsIGxvIHF1ZSBwb2Ryw61hIGluZGljYXIgdW5hIGFsdGEgcm90YWNpw7NuIGRlIGVtcGxlYWRvcyBlbiBsb3MgdHJhYmFqb3MgZGUgbWFxdWlsYSBvIHBvZHLDrWEgc2VyIHVuIGluZGljYWRvciBkZSBxdWUgaGF5IHZhcmlhcyDDoXJlYXMgZGUgb3BvcnR1bmlkYWQgZW4gY3Vlc3Rpw7NuIGRlIGFtZW5pZGFkZXMsIHNhbGFyaW9zLCBib25vcywgb3BvcnR1bmlkYWRlcyBkZSBjcmVjaW1pZW50byBlbiBsYSBlbXByZXNhLCB0cmFzbGFkbyBvIHByZXN0YWNpb25lcyBxdWUgbGEgZW1wcmVzYSBvZnJlY2UgYWRlbcOhcyBkZSBsYXMgYsOhc2ljYXMgZGljdGFkYXMgcG9yIGxhIGxleS4KCgo=