# Tableau gt_jumelles_pool — pattern écart/cible (showcase gt-tr-grp-2h-colecart)
# Cible = secteur cœur, ref = France, sous-cols = NAF individuels du cœur (Hébergement, Restauration, etc.)
source(file.path("C:/Users/vince/hh/pq/PDS/mutils/jrr", "jcn-jumelles-pool.R"))
# Définition indicateurs — 4 catégories métier (VOLUME ET POIDS / DÉMOGRAPHIE /
# QUALIFICATION / STRUCTURE DE L'EMPLOI). EEC enrichi 26-06-05 : âge jeunes/50+/65+,
# diplôme infra-bac / Bac+2 et + / Bac+5 et + (AGE6 ne permet pas <30 ni 60+).
indic_def <- tibble::tribble(
~var, ~categorie, ~bloc, ~indicateur, ~unite, ~type,
# VOLUME ET POIDS — volume brut + poids dans l'emploi + part publique
"lab_eff_vol", "VOLUME ET POIDS", "effectifs", "Effectifs salariés", "n", "vol",
"part_emp_tot_pct", "VOLUME ET POIDS", "structure", "Part dans emploi total", "%", "vol",
"lab_pub_pct", "VOLUME ET POIDS", "statut", "Part emploi public", "%", "pct",
# DÉMOGRAPHIE — genre, âge (jeunes / seniors), ancienneté
"lab_fem_pct", "DÉMOGRAPHIE", "genre", "Part de femmes", "%", "pct",
"lab_agemoy", "DÉMOGRAPHIE", "âge", "Âge moyen", "ans", "ratio",
"lab_25moins_pct", "DÉMOGRAPHIE", "âge", "Part de jeunes (< 25 ans)", "%", "pct",
"lab_50plus_pct", "DÉMOGRAPHIE", "âge", "Part 50 ans et plus", "%", "pct",
"lab_65plus_pct", "DÉMOGRAPHIE", "âge", "Part 65 ans et plus", "%", "pct",
"lab_anc5p_pct", "DÉMOGRAPHIE", "ancienneté", "Part ancienneté 5 ans et plus", "%", "pct",
# QUALIFICATION — gradient diplôme (infra-bac → Bac+2 → Bac+5)
"lab_infrabac_pct", "QUALIFICATION", "diplôme", "Part infra-bac", "%", "pct",
"lab_bac2plus_pct", "QUALIFICATION", "diplôme", "Part Bac+2 et plus", "%", "pct",
"lab_bac5plus_pct", "QUALIFICATION", "diplôme", "Part Bac+5 et plus", "%", "pct",
# STRUCTURE DE L'EMPLOI — contrat, durée, qualité d'emploi
"lab_cdd_pct", "STRUCTURE DE L'EMPLOI", "contrat", "Part CDD", "%", "pct",
"lab_tpart_pct", "STRUCTURE DE L'EMPLOI", "durée", "Part temps partiel", "%", "pct",
"lab_souempl_pct", "STRUCTURE DE L'EMPLOI", "qualité", "Part en sous-emploi", "%", "pct"
)
# Pivot wide : 1 ligne = indicateur, cols territoires
tab_long <- all_cols |>
pivot_longer(-label, names_to = "var", values_to = "value") |>
inner_join(indic_def |> select(var, indicateur), by = "var")
tab_wide <- tab_long |>
select(indicateur, label, value) |>
pivot_wider(names_from = label, values_from = value) |>
rename(France = `FR total`)
# Panel final avec meta cols + cols territoires (focus + NAF + France)
panel <- indic_def |>
inner_join(tab_wide, by = "indicateur") |>
mutate(indicateur = factor(indicateur, levels = indic_def$indicateur)) |>
arrange(indicateur) |>
mutate(indicateur = as.character(indicateur)) |>
select(categorie, bloc, indicateur, unite, type,
all_of(sect_lbl), all_of(naf_lbls), France)
# Titre insight dynamique : 2 marqueurs les + distinctifs (|écart relatif| vs France)
.markers <- tibble::tribble(
~lbl, ~v, ~ref,
"féminisation", eec_sect$lab_fem_pct, eec_fr$lab_fem_pct,
"temps partiel", eec_sect$lab_tpart_pct, eec_fr$lab_tpart_pct,
"poids de l'emploi public", eec_sect$lab_pub_pct, eec_fr$lab_pub_pct,
"vieillissement", eec_sect$lab_50plus_pct, eec_fr$lab_50plus_pct,
"faible qualification", eec_sect$lab_infrabac_pct, eec_fr$lab_infrabac_pct
) |> mutate(gap_rel = abs(v / ref - 1)) |> arrange(desc(gap_rel))
.tbl_title <- gt::md(sprintf("**Profil emploi du secteur %s : %s et %s le distinguent du tissu national**",
sect_lbl, .markers$lbl[1], .markers$lbl[2]))
# Render via gt_jumelles_pool (auto-calcul écart vs France + coloration + spanners)
gt_jumelles_pool(
panel,
focus_col = sect_lbl,
ref_col = "France",
ref_label = "France",
title = .tbl_title,
source_note = sprintf("Source : INSEE EEC %d · pondération EXTRIAN · actifs occupés. Âge ventilé en tranches AGE6 (< 25 / 50+ / 65+) ; diplôme en gradient infra-bac → Bac+2 → Bac+5.", ann_eec),
spanner_other_label = "DÉTAIL PAR SOUS-SECTEUR"
)