Établissements, effectifs salariés et masse salariale du secteur privé, par zone d’emploi et par an - nombre-etab-effectifs-salaries-et-masse-salariale-secteur-prive-zones-emploi

Données - ACOSS

Structure

Cartes par région (dernière année)

Carte de France par zone d’emploi (dernière année)

Code
# France métropolitaine uniquement (les DOM ont une projection Lambert 93
# dégénérée, très loin du cadrage métropole -- cf. data/maps/zones_emploi_2020.R)
ze_metropole <- zones_emploi_2020_details |>
  filter(!CODE_REG %in% c("01", "02", "03", "04", "06")) |>
  pull(CODE_ZE)

`etab-effectifs-ms-ze` |>
  filter(annee == max(annee)) |>
  group_by(code_zone_d_emploi) |>
  summarise(masse_salariale = sum(masse_salariale, na.rm = TRUE),
            effectifs_salaries_moyens = sum(effectifs_salaries_moyens, na.rm = TRUE),
            .groups = "drop") |>
  mutate(salaire_moyen = masse_salariale / effectifs_salaries_moyens / 12) |>
  rename(CODE_ZE = code_zone_d_emploi) |>
  right_join(zones_emploi_2020_details, by = "CODE_ZE") |>
  right_join(zones_emploi_2020 |> filter(CODE_ZE %in% ze_metropole), by = "CODE_ZE") |>
  ggplot() + aes(long, lat, group = group, subgroup = subgroup, fill = salaire_moyen) +
  coord_equal() + theme_void() + geom_polygon(color = "white", linewidth = 0.1) +
  scale_fill_viridis_c(na.value = "grey90",
                       labels = label_number(big.mark = " ", suffix = " €"),
                       name = "Salaire moyen\n(mensuel)") +
  labs(x = "", y = "") +
  theme(axis.text.x = element_blank(),
        axis.text.y = element_blank())

Effectifs salariés et établissements (France entière)

Code
`etab-effectifs-ms-ze` |>
  group_by(annee) |>
  summarise(effectifs_salaries_moyens = sum(effectifs_salaries_moyens, na.rm = TRUE),
            nombre_d_etablissements = sum(nombre_d_etablissements, na.rm = TRUE),
            .groups = "drop") |>
  select(annee, `Effectifs salariés` = effectifs_salaries_moyens,
        `Établissements` = nombre_d_etablissements) |>
  gather(variable, value, -annee) |>
  ggplot() + geom_line(aes(x = annee, y = value)) +
  facet_wrap(~variable, scales = "free_y", ncol = 1) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(date_breaks = "2 years", labels = date_format("%Y")) +
  scale_y_continuous(labels = label_number(big.mark = " ")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

Zones d’emploi les plus importantes (dernière année)

Code
`etab-effectifs-ms-ze` |>
  filter(annee == max(annee)) |>
  slice_max(effectifs_salaries_moyens, n = 20) |>
  mutate(zone_d_emploi = fct_reorder(zone_d_emploi, effectifs_salaries_moyens)) |>
  ggplot() + geom_col(aes(x = zone_d_emploi, y = effectifs_salaries_moyens)) +
  coord_flip() +
  theme_minimal() + xlab("") + ylab("Effectifs salariés moyens") +
  scale_y_continuous(labels = label_number(big.mark = " "))

Croissance des effectifs sur 5 ans, par zone d’emploi

Code
annee_max <- max(`etab-effectifs-ms-ze`$annee)
annee_min <- annee_max %m-% years(5)

`etab-effectifs-ms-ze` |>
  filter(annee %in% c(annee_min, annee_max)) |>
  select(code_zone_d_emploi, zone_d_emploi, region, annee, effectifs_salaries_moyens) |>
  mutate(periode = ifelse(annee == annee_max, "recent", "ancien")) |>
  select(-annee) |>
  distinct(code_zone_d_emploi, periode, .keep_all = TRUE) |>
  pivot_wider(names_from = periode, values_from = effectifs_salaries_moyens) |>
  filter(!is.na(recent), !is.na(ancien)) |>
  mutate(`Croissance 5 ans` = round(100 * (recent / ancien - 1), 1)) |>
  arrange(-`Croissance 5 ans`) |>
  rename(`Zone d'emploi` = zone_d_emploi, Région = region,
        !!paste("Effectifs", format(annee_min, "%Y")) := ancien,
        !!paste("Effectifs", format(annee_max, "%Y")) := recent) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}