| Title: | Statistical Tools for African National Statistics Institutes |
|---|---|
| Description: | A comprehensive statistical toolbox for National Statistics Institutes (INS) in Africa. Provides functions for survey data import ('KoboToolbox', 'ODK', 'CSPro', 'Excel', 'Stata', 'SPSS'), data processing and validation, weighted statistical analysis (descriptive statistics, cross-tabulations, regression, Human Development Index (HDI), Multidimensional Poverty Index (MPI) following Alkire and Foster (2011) <doi:10.1093/oep/gpr051>, inequalities), visualization (age pyramids, thematic maps, official charts) and dissemination ('SDMX' export, 'DDI' metadata, anonymization, Word/PDF reports). Designed to work in resource-constrained environments, offline and in French. |
| Authors: | Dikers Amoko [aut, cre, ctb], Josue Honore Dasse [ctb] |
| Maintainer: | Dikers Amoko <[email protected]> |
| License: | GPL (>= 3) |
| Version: | 0.2.1 |
| Built: | 2026-10-25 11:52:49 UTC |
| Source: | https://github.com/damoko2004/statafrikr |
Proportion des naissances assistees par un personnel de sante qualifie (medecin, sage-femme, infirmier). ODD 3.1.2.
accouchements_assistes(donnees, var_assiste, poids = NULL, sous_groupes = NULL)accouchements_assistes(donnees, var_assiste, poids = NULL, sous_groupes = NULL)
donnees |
data.frame – Donnees naissances recentes |
var_assiste |
character – Variable 0/1 indiquant un accouchement assiste par personnel qualifie |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec taux global et par sous-groupe
set.seed(42) n <- 400 naissances <- data.frame( assiste = rbinom(n, 1, 0.65), milieu = sample(c("urbain","rural"), n, TRUE), region = sample(paste0("R", 1:5), n, TRUE), poids = runif(n, 0.8, 1.3) ) accouchements_assistes(naissances, "assiste", poids = "poids", sous_groupes = c("milieu","region"))set.seed(42) n <- 400 naissances <- data.frame( assiste = rbinom(n, 1, 0.65), milieu = sample(c("urbain","rural"), n, TRUE), region = sample(paste0("R", 1:5), n, TRUE), poids = runif(n, 0.8, 1.3) ) accouchements_assistes(naissances, "assiste", poids = "poids", sous_groupes = c("milieu","region"))
Ajuste un modèle de régression linéaire, logistique ou de Poisson avec prise en compte optionnelle du plan de sondage complexe. Produit un tableau de résultats formaté avec OR/RR si approprié.
analyse_regression( formule, data, type = c("lineaire", "logistique", "poisson"), niveau_confiance = 0.95, format_sortie = c("tibble", "liste", "flextable") )analyse_regression( formule, data, type = c("lineaire", "logistique", "poisson"), niveau_confiance = 0.95, format_sortie = c("tibble", "liste", "flextable") )
formule |
formula — Formule du modèle (ex: |
data |
data.frame, tibble ou objet |
type |
character — Type de modèle : |
niveau_confiance |
numeric — Niveau de confiance pour les IC. Défaut : 0.95. |
format_sortie |
character — |
Selon format_sortie : liste complète, tibble ou flextable des coefficients avec IC et p-valeurs.
## Not run: donnees <- data.frame( revenu = rnorm(100, 200000, 50000), age = sample(20:65, 100, replace=TRUE), sexe = sample(c("H","F"), 100, replace=TRUE) ) analyse_regression(revenu ~ age + sexe, donnees) ## End(Not run)## Not run: donnees <- data.frame( revenu = rnorm(100, 200000, 50000), age = sample(20:65, 100, replace=TRUE), sexe = sample(c("H","F"), 100, replace=TRUE) ) analyse_regression(revenu ~ age + sexe, donnees) ## End(Not run)
Joint un jeu de données statistiques avec un shapefile géographique et calcule des indicateurs par aire géographique. Produit un objet sf enrichi prêt pour la cartographie.
analyse_spatiale( data, shapefile, var_geo_data, var_geo_shape, indicateurs = NULL, fonctions = list(moyenne = function(x) mean(x, na.rm = TRUE), n = function(x) sum(!is.na(x))) )analyse_spatiale( data, shapefile, var_geo_data, var_geo_shape, indicateurs = NULL, fonctions = list(moyenne = function(x) mean(x, na.rm = TRUE), n = function(x) sum(!is.na(x))) )
data |
data.frame ou tibble — Données avec variable géographique |
shapefile |
sf ou character — Objet sf ou chemin vers un fichier shapefile (.shp, .gpkg, .geojson) |
var_geo_data |
character — Variable géographique dans |
var_geo_shape |
character — Variable géographique dans le shapefile |
indicateurs |
character ou NULL — Variables à agréger par zone. Si NULL, toutes les variables numériques. Défaut : NULL. |
fonctions |
list — Fonctions d'agrégation nommées.
Défaut : |
Un objet sf avec les indicateurs calculés par zone.
## Not run: carte <- analyse_spatiale( data = donnees_enquete, shapefile = "data/shapefiles/regions.shp", var_geo_data = "region", var_geo_shape = "NOM_REGION", indicateurs = c("taux_pauvrete", "revenu_moyen") ) ## End(Not run)## Not run: carte <- analyse_spatiale( data = donnees_enquete, shapefile = "data/shapefiles/regions.shp", var_geo_data = "region", var_geo_shape = "NOM_REGION", indicateurs = c("taux_pauvrete", "revenu_moyen") ) ## End(Not run)
Calcule les taux de non-reponse par strate et teste les biais de non-reponse potentiels par comparaison des repondants et non-repondants sur les variables disponibles.
analyser_non_reponse( donnees, var_reponse, var_strate = NULL, vars_biais = NULL )analyser_non_reponse( donnees, var_reponse, var_strate = NULL, vars_biais = NULL )
donnees |
data.frame – Donnees avec variable reponse |
var_reponse |
character – Variable 0/1 : a repondu (1) ou non-repondant (0) |
var_strate |
character ou NULL – Variable de stratification. Defaut : NULL |
vars_biais |
character ou NULL – Variables pour test de biais (disponibles pour tous : repondants + non-repondants). Defaut : NULL |
Un tibble avec taux de reponse et statistiques de biais
set.seed(42) n <- 400 donnees <- data.frame( repondu = rbinom(n, 1, 0.88), strate = sample(c("Urbain","Rural"), n, TRUE), age_cm = sample(25:65, n, TRUE), taille_men = sample(3:10, n, TRUE) ) analyser_non_reponse(donnees, "repondu", var_strate = "strate", vars_biais = c("age_cm","taille_men"))set.seed(42) n <- 400 donnees <- data.frame( repondu = rbinom(n, 1, 0.88), strate = sample(c("Urbain","Rural"), n, TRUE), age_cm = sample(25:65, n, TRUE), taille_men = sample(3:10, n, TRUE) ) analyser_non_reponse(donnees, "repondu", var_strate = "strate", vars_biais = c("age_cm","taille_men"))
Calcule la prevalence de l'anemie selon les seuils OMS (hemoglobine en g/dL). Distingue les niveaux legere, moderee, severe.
anemie( donnees, var_hemoglobine, var_groupe_cible = NULL, poids = NULL, sous_groupes = NULL )anemie( donnees, var_hemoglobine, var_groupe_cible = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees menages ou individus |
var_hemoglobine |
character – Taux d'hemoglobine en g/dL |
var_groupe_cible |
character ou NULL – Groupe cible : "femmes_15_49", "enfants_6_59", "enceintes", "tous". Defaut : NULL (tous) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec prevalence par niveau d'anemie
set.seed(42) n <- 400 femmes <- data.frame( hemoglobine = rnorm(n, 11.5, 2.1), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) anemie(femmes, var_hemoglobine = "hemoglobine", poids = "poids")set.seed(42) n <- 400 femmes <- data.frame( hemoglobine = rnorm(n, 11.5, 2.1), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) anemie(femmes, var_hemoglobine = "hemoglobine", poids = "poids")
Applique les techniques d'anonymisation conformes aux standards IHSN/PARIS21 : suppression, masquage, generalisation, perturbation et pseudonymisation des variables sensibles.
anonymiser_donnees( data, vars_supprimer = NULL, vars_masquer = NULL, vars_perturber = NULL, vars_generaliser = NULL, niveau_bruit = 0.05, graine = 42L, seuil_cellule = 5L, rapport = TRUE )anonymiser_donnees( data, vars_supprimer = NULL, vars_masquer = NULL, vars_perturber = NULL, vars_generaliser = NULL, niveau_bruit = 0.05, graine = 42L, seuil_cellule = 5L, rapport = TRUE )
data |
data.frame ou tibble — Données à anonymiser |
vars_supprimer |
character ou NULL — Variables à supprimer entièrement. Défaut : NULL. |
vars_masquer |
character ou NULL — Variables à remplacer par des codes anonymes. Défaut : NULL. |
vars_perturber |
character ou NULL — Variables numériques à perturber par bruit aléatoire. Défaut : NULL. |
vars_generaliser |
list ou NULL — Liste nommée de variables à
généraliser avec les bornes : |
niveau_bruit |
numeric — Niveau de bruit pour la perturbation (proportion de l'écart-type). Défaut : 0.05. |
graine |
integer — Graine aléatoire. Défaut : 42. |
seuil_cellule |
integer – Seuil de confidentialite : les cellules avec effectif < seuil_cellule declenchent un avertissement. Defaut : 5L. Configurable selon la politique de l'INS. |
rapport |
logical — Produire un rapport d'anonymisation. Défaut : TRUE. |
Si rapport = FALSE : tibble anonymisé.
Si rapport = TRUE : liste avec $donnees et $rapport.
## Not run: resultat <- anonymiser_donnees( donnees_enquete, vars_supprimer = c("nom", "prenom", "telephone"), vars_masquer = c("id_menage", "id_individu"), vars_perturber = c("revenu_mensuel"), vars_generaliser = list(age = 5) ) donnees_anon <- resultat$donnees ## End(Not run)## Not run: resultat <- anonymiser_donnees( donnees_enquete, vars_supprimer = c("nom", "prenom", "telephone"), vars_masquer = c("id_menage", "id_individu"), vars_perturber = c("revenu_mensuel"), vars_generaliser = list(age = 5) ) donnees_anon <- resultat$donnees ## End(Not run)
Crée un objet de plan de sondage complexe à partir d'un
tibble et des variables de pondération, strates et grappes. Enveloppe
ergonomique autour de survey::svydesign() avec validation
complète des poids et messages d'erreur en français.
appliquer_ponderations( data, var_poids, var_strate = NULL, var_grappe = NULL, var_fpc = NULL, normaliser = FALSE )appliquer_ponderations( data, var_poids, var_strate = NULL, var_grappe = NULL, var_fpc = NULL, normaliser = FALSE )
data |
data.frame ou tibble — Données de l'enquête |
var_poids |
character — Nom de la variable de pondération finale |
var_strate |
character ou NULL — Variable de stratification. Défaut : NULL. |
var_grappe |
character ou NULL — Variable d'unité primaire de sondage (UPS/cluster). Défaut : NULL. |
var_fpc |
character ou NULL — Variable de correction pour population finie (FPC). Défaut : NULL. |
normaliser |
logical — Normaliser les poids pour que leur somme soit égale à l'effectif de l'échantillon. Défaut : FALSE. |
Un objet svydesign du package survey.
if (requireNamespace("survey", quietly = TRUE)) { donnees <- data.frame( revenu = rnorm(50, 200000, 50000), poids_final = runif(50, 0.5, 3), strate = sample(1:4, 50, replace = TRUE), grappe_id = sample(1:10, 50, replace = TRUE) ) appliquer_ponderations(donnees, var_poids = "poids_final", var_strate = "strate", var_grappe = "grappe_id") }if (requireNamespace("survey", quietly = TRUE)) { donnees <- data.frame( revenu = rnorm(50, 200000, 50000), poids_final = runif(50, 0.5, 3), strate = sample(1:4, 50, replace = TRUE), grappe_id = sample(1:10, 50, replace = TRUE) ) appliquer_ponderations(donnees, var_poids = "poids_final", var_strate = "strate", var_grappe = "grappe_id") }
Calcule un indice composite d'autonomisation des femmes base sur trois dimensions : prises de decision, acces aux ressources et mobilite. Conforme a la methodologie DHS/MICS.
autonomisation_femmes( donnees, vars_decision = NULL, vars_ressources = NULL, vars_mobilite = NULL, poids = NULL, sous_groupes = NULL )autonomisation_femmes( donnees, vars_decision = NULL, vars_ressources = NULL, vars_mobilite = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees femmes |
vars_decision |
character ou NULL – Variables 0/1 de prise de decision (ex: decisions achat menage, sante, visites). Defaut : NULL |
vars_ressources |
character ou NULL – Variables 0/1 d'acces aux ressources (ex: compte bancaire, revenu propre, terre). Defaut : NULL |
vars_mobilite |
character ou NULL – Variables 0/1 de mobilite (ex: libre de se deplacer seule, rendre visite, marche). Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_genre
set.seed(42) n <- 400 femmes <- data.frame( dec_achat = rbinom(n, 1, 0.55), dec_sante = rbinom(n, 1, 0.48), compte_ban = rbinom(n, 1, 0.32), rev_propre = rbinom(n, 1, 0.41), libre_dep = rbinom(n, 1, 0.62), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) autonomisation_femmes(femmes, vars_decision = c("dec_achat","dec_sante"), vars_ressources = c("compte_ban","rev_propre"), vars_mobilite = c("libre_dep"), poids = "poids", sous_groupes = "milieu")set.seed(42) n <- 400 femmes <- data.frame( dec_achat = rbinom(n, 1, 0.55), dec_sante = rbinom(n, 1, 0.48), compte_ban = rbinom(n, 1, 0.32), rev_propre = rbinom(n, 1, 0.41), libre_dep = rbinom(n, 1, 0.62), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) autonomisation_femmes(femmes, vars_decision = c("dec_achat","dec_sante"), vars_ressources = c("compte_ban","rev_propre"), vars_mobilite = c("libre_dep"), poids = "poids", sous_groupes = "milieu")
Proportion d'individus se declarant tres heureux ou heureux. Variable categorielle recodee en indicateur 0/1.
bonheur_declare( donnees, var_bonheur, codes_heureux = c(1, 2), poids = NULL, sous_groupes = NULL )bonheur_declare( donnees, var_bonheur, codes_heureux = c(1, 2), poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles |
var_bonheur |
character – Variable de bonheur. Valeurs attendues : 1="Tres heureux", 2="Heureux", 3="Pas tres heureux", 4="Pas du tout heureux" OU variable 0/1 deja binaire. |
codes_heureux |
numeric ou character – Codes consideres comme "heureux" (les autres = "pas heureux"). Defaut : c(1, 2) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_subjectif
set.seed(42) n <- 500 individus <- data.frame( bonheur = sample(1:4, n, TRUE, prob=c(0.20,0.45,0.25,0.10)), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) bonheur_declare(individus, "bonheur", codes_heureux=c(1,2), poids="poids", sous_groupes="milieu")set.seed(42) n <- 500 individus <- data.frame( bonheur = sample(1:4, n, TRUE, prob=c(0.20,0.45,0.25,0.10)), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) bonheur_declare(individus, "bonheur", codes_heureux=c(1,2), poids="poids", sous_groupes="milieu")
Calcule le Design Effect (DEFF) pour les variables d'interet. DEFF = Variance estimee sous le plan complexe / Variance sous SRS. Permet de calculer la taille effective de l'echantillon.
calcul_deff(saf_design, variables, type = c("proportion", "moyenne"))calcul_deff(saf_design, variables, type = c("proportion", "moyenne"))
saf_design |
saf_design – Objet cree par |
variables |
character – Variables pour lesquelles calculer le DEFF |
type |
character – "proportion" ou "moyenne". Defaut : "proportion" |
Un tibble avec DEFF et taille effective par variable
set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE), pauvre = rbinom(n, 1, 0.45), revenu = pmax(0, rnorm(n, 180000, 90000)) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) calcul_deff(design, variables=c("pauvre","revenu"))set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE), pauvre = rbinom(n, 1, 0.45), revenu = pmax(0, rnorm(n, 180000, 90000)) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) calcul_deff(design, variables=c("pauvre","revenu"))
Calcule les indices Foster-Greer-Thorbecke (FGT0, FGT1, FGT2) avec prise en compte optionnelle du plan de sondage complexe. Les trois indices mesurent respectivement l'incidence, la profondeur et la severite de la pauvrete monetaire.
calcul_fgt( data, var_depense, seuil_pauvrete, poids = NULL, strate = NULL, grappe = NULL, sous_groupes = NULL, alpha = c(0, 1, 2), ic = TRUE, na.rm = TRUE )calcul_fgt( data, var_depense, seuil_pauvrete, poids = NULL, strate = NULL, grappe = NULL, sous_groupes = NULL, alpha = c(0, 1, 2), ic = TRUE, na.rm = TRUE )
data |
data.frame, tibble ou objet |
var_depense |
character – Nom de la variable de depenses ou revenus par tete (en monnaie locale, strictement positive) |
seuil_pauvrete |
numeric – Seuil de pauvrete en monnaie locale.
Meme unite que |
poids |
character ou NULL – Nom de la variable de ponderation.
Ignore si |
strate |
character ou NULL – Variable de stratification. Defaut : NULL |
grappe |
character ou NULL – Variable d'identifiant de grappe. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de decomposition (region, milieu, sexe). Defaut : NULL |
alpha |
numeric – Parametre de sensibilite : 0, 1, 2 ou vecteur.
Defaut : |
ic |
logical – Calculer les IC 95%. Defaut : TRUE.
Methode : Wilson (echantillon simple) ou Taylor via |
na.rm |
logical – Exclure les valeurs manquantes. Defaut : TRUE |
Un objet de classe saf_fgt
Foster, J., Greer, J., & Thorbecke, E. (1984). A class of decomposable poverty measures. Econometrica, 52(3), 761-766. doi:10.2307/1913475
set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/400000)), poids = runif(100, 0.8, 1.2), region = sample(c("Bangui", "Ombella", "Lobaye"), 100, TRUE), milieu = sample(c("urbain", "rural"), 100, TRUE, prob = c(0.4, 0.6)) ) fgt <- calcul_fgt(menages, var_depense = "depense_pc", seuil_pauvrete = 220000, poids = "poids") print(fgt)set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/400000)), poids = runif(100, 0.8, 1.2), region = sample(c("Bangui", "Ombella", "Lobaye"), 100, TRUE), milieu = sample(c("urbain", "rural"), 100, TRUE, prob = c(0.4, 0.6)) ) fgt <- calcul_fgt(menages, var_depense = "depense_pc", seuil_pauvrete = 220000, poids = "poids") print(fgt)
Calcule le coefficient de Gini avec intervalle de confiance par bootstrap. Le Gini mesure l'inegalite de distribution d'une variable de revenu ou de consommation (0 = egalite parfaite, 1 = inegalite maximale).
calcul_gini( donnees, var_revenu, poids = NULL, ic = FALSE, n_bootstrap = 200L, sous_groupes = NULL )calcul_gini( donnees, var_revenu, poids = NULL, ic = FALSE, n_bootstrap = 200L, sous_groupes = NULL )
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu ou de consommation (valeurs strictement positives) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
ic |
logical – Calculer l'IC 95% par bootstrap. Defaut : FALSE |
n_bootstrap |
integer – Replications bootstrap. Defaut : 200L |
sous_groupes |
character ou NULL – Variables de sous-groupe pour decomposition. Defaut : NULL |
Un objet de classe saf_gini
set.seed(42) n <- 300 menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) res <- calcul_gini(menages, "depense", poids = "poids") print(res)set.seed(42) n <- 300 menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) res <- calcul_gini(menages, "depense", poids = "poids") print(res)
Calcule l'IDH et ses trois dimensions (santé, éducation, revenu) selon la méthodologie officielle PNUD post-2010. Applicable au niveau national ou infranational.
calcul_idh( esperance_vie, annees_scol_moy, annees_scol_att, rnb_habitant, niveau = c("national", "infranational"), annee = NULL )calcul_idh( esperance_vie, annees_scol_moy, annees_scol_att, rnb_habitant, niveau = c("national", "infranational"), annee = NULL )
esperance_vie |
numeric — Espérance de vie à la naissance (années) |
annees_scol_moy |
numeric — Durée moyenne de scolarisation (années) |
annees_scol_att |
numeric — Durée attendue de scolarisation (années) |
rnb_habitant |
numeric — RNB par habitant en PPA (USD constants 2017) |
niveau |
character — |
annee |
integer ou NULL — Année de référence. Défaut : NULL. |
Une liste avec : idh, indice_sante,
indice_education, indice_revenu, categorie.
PNUD (2023). Technical Notes: Calculating the Human Development Indices.
idh <- calcul_idh( esperance_vie = 61.2, annees_scol_moy = 5.4, annees_scol_att = 9.8, rnb_habitant = 2350, annee = 2023 ) cat("IDH :", idh$idh)idh <- calcul_idh( esperance_vie = 61.2, annees_scol_moy = 5.4, annees_scol_att = 9.8, rnb_habitant = 2350, annee = 2023 ) cat("IDH :", idh$idh)
Calcule l'IPM standard PNUD/OPHI selon la methode Alkire-Foster (2011). L'IPM = H x A, ou H est l'incidence (proportion de menages multidimensionnellement pauvres) et A l'intensite moyenne de privation parmi les pauvres.
calcul_ipm( donnees, var_nutrition = NULL, var_mortalite_inf = NULL, var_annees_scol = NULL, var_scolarisation = NULL, var_combustible = NULL, var_assainissement = NULL, var_eau = NULL, var_electricite = NULL, var_logement = NULL, var_actifs = NULL, poids = NULL, seuil_k = 1/3, ic = FALSE, n_bootstrap = 200L )calcul_ipm( donnees, var_nutrition = NULL, var_mortalite_inf = NULL, var_annees_scol = NULL, var_scolarisation = NULL, var_combustible = NULL, var_assainissement = NULL, var_eau = NULL, var_electricite = NULL, var_logement = NULL, var_actifs = NULL, poids = NULL, seuil_k = 1/3, ic = FALSE, n_bootstrap = 200L )
donnees |
data.frame – Donnees menages |
var_nutrition |
character ou NULL – Variable nutrition (1 = prive, 0 = non prive). Defaut : NULL |
var_mortalite_inf |
character ou NULL – Deces d'enfant dans le menage (1 = oui). Defaut : NULL |
var_annees_scol |
character ou NULL – Aucun membre >= 6 ans ayant complete 6 ans de scolarite (1 = prive). Defaut : NULL |
var_scolarisation |
character ou NULL – Enfant non scolarise dans le menage (1 = prive). Defaut : NULL |
var_combustible |
character ou NULL – Combustible solide pour la cuisine (1 = prive). Defaut : NULL |
var_assainissement |
character ou NULL – Assainissement non ameliore (1 = prive). Defaut : NULL |
var_eau |
character ou NULL – Eau non potable (1 = prive). Defaut : NULL |
var_electricite |
character ou NULL – Sans electricite (1 = prive). Defaut : NULL |
var_logement |
character ou NULL – Logement inadequat (1 = prive). Defaut : NULL |
var_actifs |
character ou NULL – Pas d'actifs de base (1 = prive). Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL (poids egaux) |
seuil_k |
numeric – Seuil de pauvrete multidimensionnelle (proportion de privations). Defaut : 1/3 |
ic |
logical – Calculer les intervalles de confiance (bootstrap). Defaut : FALSE |
n_bootstrap |
integer – Nombre de replications bootstrap. Defaut : 200L |
Un objet de classe saf_ipm contenant :
IPM, H, A, contributions,
n_obs, seuil_k, methode
Alkire, S. & Foster, J. (2011). Counting and multidimensional poverty measurement. Journal of Public Economics, 95(7-8), 476-487. doi:10.1016/j.jpubeco.2010.11.006
set.seed(42) n <- 200 menages <- data.frame( nutrition = rbinom(n, 1, 0.35), mortalite_inf = rbinom(n, 1, 0.12), annees_scol = rbinom(n, 1, 0.40), scolarisation = rbinom(n, 1, 0.28), combustible = rbinom(n, 1, 0.55), assainissement = rbinom(n, 1, 0.48), eau = rbinom(n, 1, 0.38), electricite = rbinom(n, 1, 0.62), logement = rbinom(n, 1, 0.42), actifs = rbinom(n, 1, 0.30), poids = runif(n, 0.8, 1.3) ) res <- calcul_ipm(menages, var_nutrition = "nutrition", var_mortalite_inf = "mortalite_inf", var_annees_scol = "annees_scol", var_scolarisation = "scolarisation", var_combustible = "combustible", var_assainissement = "assainissement", var_eau = "eau", var_electricite = "electricite", var_logement = "logement", var_actifs = "actifs", poids = "poids" ) print(res)set.seed(42) n <- 200 menages <- data.frame( nutrition = rbinom(n, 1, 0.35), mortalite_inf = rbinom(n, 1, 0.12), annees_scol = rbinom(n, 1, 0.40), scolarisation = rbinom(n, 1, 0.28), combustible = rbinom(n, 1, 0.55), assainissement = rbinom(n, 1, 0.48), eau = rbinom(n, 1, 0.38), electricite = rbinom(n, 1, 0.62), logement = rbinom(n, 1, 0.42), actifs = rbinom(n, 1, 0.30), poids = runif(n, 0.8, 1.3) ) res <- calcul_ipm(menages, var_nutrition = "nutrition", var_mortalite_inf = "mortalite_inf", var_annees_scol = "annees_scol", var_scolarisation = "scolarisation", var_combustible = "combustible", var_assainissement = "assainissement", var_eau = "eau", var_electricite = "electricite", var_logement = "logement", var_actifs = "actifs", poids = "poids" ) print(res)
Calcule un IPM national adapte aux realites locales (ODD 1.2.2). L'INS peut choisir ses indicateurs, leurs poids et le seuil k.
calcul_ipm_national( donnees, indicateurs, poids = NULL, seuil_k = 1/3, ic = FALSE, n_bootstrap = 200L )calcul_ipm_national( donnees, indicateurs, poids = NULL, seuil_k = 1/3, ic = FALSE, n_bootstrap = 200L )
donnees |
data.frame – Donnees menages |
indicateurs |
list – Liste nommee definissant les indicateurs :
chaque element contient |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
seuil_k |
numeric – Seuil de pauvrete. Defaut : 1/3 |
ic |
logical – Intervalles de confiance bootstrap. Defaut : FALSE |
n_bootstrap |
integer – Replications bootstrap. Defaut : 200L |
Un objet saf_ipm
set.seed(42) n <- 150 menages <- data.frame( eau = rbinom(n, 1, 0.45), electricite = rbinom(n, 1, 0.60), scol = rbinom(n, 1, 0.35), sante = rbinom(n, 1, 0.25), poids = runif(n, 0.8, 1.3) ) indics <- list( acces_eau = list(var = "eau", poids = 0.25, dimension = "Conditions de vie"), acces_elec = list(var = "electricite", poids = 0.25, dimension = "Conditions de vie"), education = list(var = "scol", poids = 0.30, dimension = "Education"), sante_base = list(var = "sante", poids = 0.20, dimension = "Sante") ) res <- calcul_ipm_national(menages, indicateurs = indics, poids = "poids", seuil_k = 1/3) print(res)set.seed(42) n <- 150 menages <- data.frame( eau = rbinom(n, 1, 0.45), electricite = rbinom(n, 1, 0.60), scol = rbinom(n, 1, 0.35), sante = rbinom(n, 1, 0.25), poids = runif(n, 0.8, 1.3) ) indics <- list( acces_eau = list(var = "eau", poids = 0.25, dimension = "Conditions de vie"), acces_elec = list(var = "electricite", poids = 0.25, dimension = "Conditions de vie"), education = list(var = "scol", poids = 0.30, dimension = "Education"), sante_base = list(var = "sante", poids = 0.20, dimension = "Sante") ) res <- calcul_ipm_national(menages, indicateurs = indics, poids = "poids", seuil_k = 1/3) print(res)
Convertit les valeurs en prix courants en prix constants (volume) en utilisant le deflateur implicite du PIB ou un indice de prix fourni. Base annee referencee configurable.
calculer_deflateur( donnees, var_pib_courant, var_deflateur = NULL, var_ipc = NULL, annee_base = 2015L, var_annee = "annee" )calculer_deflateur( donnees, var_pib_courant, var_deflateur = NULL, var_ipc = NULL, annee_base = 2015L, var_annee = "annee" )
donnees |
data.frame – Donnees avec PIB courant et deflateur |
var_pib_courant |
character – Variable PIB en prix courants |
var_deflateur |
character ou NULL – Variable deflateur (base 100). Si NULL, calcule depuis var_ipc. Defaut : NULL |
var_ipc |
character ou NULL – Indice des prix a la consommation (si deflateur non fourni). Defaut : NULL |
annee_base |
integer – Annee de base du deflateur. Defaut : 2015L |
var_annee |
character – Variable annee. Defaut : "annee" |
Un tibble avec PIB courant, deflateur et PIB constant
comptes <- data.frame( annee = 2015:2022, pib_courant = c(2100,2180,2250,2310,2195,2280,2380,2450), deflateur = c(100,103.2,106.8,110.5,109.2,113.5,118.2,122.8) ) calculer_deflateur(comptes, "pib_courant", var_deflateur="deflateur", annee_base=2015L)comptes <- data.frame( annee = 2015:2022, pib_courant = c(2100,2180,2250,2310,2195,2280,2380,2450), deflateur = c(100,103.2,106.8,110.5,109.2,113.5,118.2,122.8) ) calculer_deflateur(comptes, "pib_courant", var_deflateur="deflateur", annee_base=2015L)
Ajuste (cale) les poids de sondage pour que les estimations correspondent aux totaux de population connus (rake / calage generalise GREG). Methode post-stratification generalisee.
calibrer_poids( saf_design, marges, var_calibrage, methode = c("raking", "post-stratification"), tolerance = 1e-06, max_iter = 50L )calibrer_poids( saf_design, marges, var_calibrage, methode = c("raking", "post-stratification"), tolerance = 1e-06, max_iter = 50L )
saf_design |
saf_design – Objet design a calibrer |
marges |
list – Liste nommee des totaux de population par variable. Exemple : list(sexe=c(H=1200000, F=1350000), milieu=c(urbain=1500000, rural=1050000)) |
var_calibrage |
character – Variables de calage (doivent etre dans les donnees). Ex : c("sexe", "milieu") |
methode |
character – "raking" ou "post-stratification". Defaut : "raking" |
tolerance |
numeric – Tolerance de convergence. Defaut : 1e-6 |
max_iter |
integer – Nombre maximum d'iterations. Defaut : 50L |
Un objet saf_design avec poids calibres
set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) marges <- list( sexe = c(H=500000, F=550000), milieu = c(urbain=600000, rural=450000) ) calibrer_poids(design, marges, var_calibrage=c("sexe","milieu"))set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) marges <- list( sexe = c(H=500000, F=550000), milieu = c(urbain=600000, rural=450000) ) calibrer_poids(design, marges, var_calibrage=c("sexe","milieu"))
Produit une carte choroplethe professionnelle. Utilise uniquement ggplot2 (deja installe avec statAfrikR) et sf. Gestion automatique des labels pour les petits pays.
carte_choroplethe( sf_obj, var, titre = NULL, sous_titre = NULL, legende = NULL, palette = c("pauvrete", "developpement", "eau", "neutre"), n_classes = 5L, methode = c("quantile", "jenks", "egal", "sd"), col_label = NULL, inverser = FALSE, source = NULL )carte_choroplethe( sf_obj, var, titre = NULL, sous_titre = NULL, legende = NULL, palette = c("pauvrete", "developpement", "eau", "neutre"), n_classes = 5L, methode = c("quantile", "jenks", "egal", "sd"), col_label = NULL, inverser = FALSE, source = NULL )
sf_obj |
sf – Objet sf enrichi (depuis |
var |
character – Variable numerique a cartographier |
titre |
character ou NULL – Titre. Defaut : NULL |
sous_titre |
character ou NULL – Sous-titre. Defaut : NULL |
legende |
character ou NULL – Titre de la legende. Defaut : NULL |
palette |
character – Palette : |
n_classes |
integer – Nombre de classes (2-9). Defaut : 5L |
methode |
character – Discretisation : |
col_label |
character ou NULL – Variable a afficher comme label sur chaque zone. Defaut : NULL |
inverser |
logical – Inverser la palette. Defaut : FALSE |
source |
character ou NULL – Note de source. Defaut : NULL |
Un objet ggplot2
rca <- carte_zones("rca") n <- nrow(rca) stats <- data.frame( prefecture = rca$prefecture, taux_pauvrete = c(74.2, 71.8, 68.5, 65.3, 72.1, 55.4, 48.7, 51.2, 62.3, 58.9, 28.4, 42.1, 52.8, 63.7, 59.4, 44.6, 70.5)[seq_len(n)] ) sf_enr <- carte_joindre(rca, stats, "prefecture", "prefecture") carte_choroplethe(sf_enr, "taux_pauvrete", titre = "Pauvrete en RCA", source = "Donnees simulees")rca <- carte_zones("rca") n <- nrow(rca) stats <- data.frame( prefecture = rca$prefecture, taux_pauvrete = c(74.2, 71.8, 68.5, 65.3, 72.1, 55.4, 48.7, 51.2, 62.3, 58.9, 28.4, 42.1, 52.8, 63.7, 59.4, 44.6, 70.5)[seq_len(n)] ) sf_enr <- carte_joindre(rca, stats, "prefecture", "prefecture") carte_choroplethe(sf_enr, "taux_pauvrete", titre = "Pauvrete en RCA", source = "Donnees simulees")
Exporte un objet ggplot2 en PNG, PDF ou SVG.
carte_exporter(carte, chemin, largeur = 20, hauteur = 15, resolution = 300L)carte_exporter(carte, chemin, largeur = 20, hauteur = 15, resolution = 300L)
carte |
ggplot – Objet ggplot2 |
chemin |
character – Chemin de sortie (.png, .pdf, .svg) |
largeur |
numeric – Largeur en cm. Defaut : 20 |
hauteur |
numeric – Hauteur en cm. Defaut : 15 |
resolution |
integer – Resolution DPI (PNG). Defaut : 300L |
Chemin du fichier (invisible)
## Not run: g <- carte_choroplethe(sf_enrichi, "taux_pauvrete") carte_exporter(g, file.path(tempdir(), "carte.png")) ## End(Not run)## Not run: g <- carte_choroplethe(sf_enrichi, "taux_pauvrete") carte_exporter(g, file.path(tempdir(), "carte.png")) ## End(Not run)
Importe un fichier geographique externe (shapefile, GeoJSON, GeoPackage) fourni par l'utilisateur ou l'INS.
carte_import(chemin, crs = 4326L, couche = NULL, simplifier = FALSE)carte_import(chemin, crs = 4326L, couche = NULL, simplifier = FALSE)
chemin |
character – Chemin vers le fichier (.shp, .geojson, .gpkg) |
crs |
integer – Code EPSG cible. Defaut : 4326 (WGS 84) |
couche |
character ou NULL – Couche GeoPackage. Defaut : NULL |
simplifier |
logical – Simplifier la geometrie. Defaut : FALSE |
Un objet sf
## Not run: regions <- carte_import("data/regions_enquete.shp") ## End(Not run)## Not run: regions <- carte_import("data/regions_enquete.shp") ## End(Not run)
Cartographie l'IPM ou une composante (H, A, ou un indicateur de privation) par zone geographique. Necessite un objet sf et les resultats de decomposer_ipm().
carte_ipm( decomp_ipm, sf_obj, cle_sf, cle_decomp, var = c("IPM", "H", "A"), titre = NULL, source = NULL )carte_ipm( decomp_ipm, sf_obj, cle_sf, cle_decomp, var = c("IPM", "H", "A"), titre = NULL, source = NULL )
decomp_ipm |
tibble – Resultat de |
sf_obj |
sf – Fond de carte (depuis |
cle_sf |
character – Variable cle dans |
cle_decomp |
character – Variable cle dans |
var |
character – Variable a cartographier :
|
titre |
character ou NULL – Titre. Defaut : NULL |
source |
character ou NULL – Source. Defaut : NULL |
Un objet ggplot2
## Not run: rca <- carte_zones("rca") res <- calcul_ipm(menages_rca, ...) decomp <- decomposer_ipm(res, menages_rca, "prefecture") carte_ipm(decomp, rca, cle_sf="prefecture", cle_decomp="prefecture") ## End(Not run)## Not run: rca <- carte_zones("rca") res <- calcul_ipm(menages_rca, ...) decomp <- decomposer_ipm(res, menages_rca, "prefecture") carte_ipm(decomp, rca, cle_sf="prefecture", cle_decomp="prefecture") ## End(Not run)
Joint un objet sf avec un data.frame statistique. Normalise automatiquement les cles pour eviter les erreurs de correspondance dues aux accents, casses et espaces.
carte_joindre( sf_obj, data, cle_geo, cle_data = NULL, type = c("gauche", "interne"), normaliser = TRUE )carte_joindre( sf_obj, data, cle_geo, cle_data = NULL, type = c("gauche", "interne"), normaliser = TRUE )
sf_obj |
sf – Objet geographique (depuis |
data |
data.frame – Donnees statistiques |
cle_geo |
character – Variable cle dans |
cle_data |
character – Variable cle dans |
type |
character – |
normaliser |
logical – Normaliser les cles (recommande). Defaut : TRUE |
Un objet sf enrichi
# Avec les fonds de cartes integres rca <- carte_zones("rca") stats <- data.frame( prefecture = rca$prefecture, taux_pauvrete = c(74.2, 71.8, 68.5, 65.3, 72.1, 55.4, 48.7, 51.2, 62.3, 58.9, 28.4, 42.1, 52.8, 63.7, 59.4, 44.6, 70.5)[seq_len(nrow(rca))] ) sf_enrichi <- carte_joindre(rca, stats, cle_geo = "prefecture", cle_data = "prefecture")# Avec les fonds de cartes integres rca <- carte_zones("rca") stats <- data.frame( prefecture = rca$prefecture, taux_pauvrete = c(74.2, 71.8, 68.5, 65.3, 72.1, 55.4, 48.7, 51.2, 62.3, 58.9, 28.4, 42.1, 52.8, 63.7, 59.4, 44.6, 70.5)[seq_len(nrow(rca))] ) sf_enrichi <- carte_joindre(rca, stats, cle_geo = "prefecture", cle_data = "prefecture")
Specialisation de carte_choroplethe() pour les
indices de pauvrete. Symbologie standardisee AFRISTAT/Banque mondiale
avec seuil d'alerte.
carte_pauvrete( sf_obj, var_fgt0, seuil_alerte = 0.5, col_label = NULL, titre = NULL, source = NULL )carte_pauvrete( sf_obj, var_fgt0, seuil_alerte = 0.5, col_label = NULL, titre = NULL, source = NULL )
sf_obj |
sf – Objet sf avec taux de pauvrete |
var_fgt0 |
character – Variable de taux de pauvrete |
seuil_alerte |
numeric – Seuil d'alerte. Defaut : 0.5 |
col_label |
character ou NULL – Variable de label. Defaut : NULL |
titre |
character ou NULL – Titre. Defaut : titre automatique |
source |
character ou NULL – Source. Defaut : NULL |
Un objet ggplot2
rca <- carte_zones("rca") n <- nrow(rca) stats <- data.frame( prefecture = rca$prefecture, taux_pauvrete = c(74.2, 71.8, 68.5, 65.3, 72.1, 55.4, 48.7, 51.2, 62.3, 58.9, 28.4, 42.1, 52.8, 63.7, 59.4, 44.6, 70.5)[seq_len(n)] ) sf_enr <- carte_joindre(rca, stats, "prefecture", "prefecture") sf_enr$taux_prop <- sf_enr$taux_pauvrete / 100 carte_pauvrete(sf_enr, var_fgt0 = "taux_prop", source = "Donnees simulees")rca <- carte_zones("rca") n <- nrow(rca) stats <- data.frame( prefecture = rca$prefecture, taux_pauvrete = c(74.2, 71.8, 68.5, 65.3, 72.1, 55.4, 48.7, 51.2, 62.3, 58.9, 28.4, 42.1, 52.8, 63.7, 59.4, 44.6, 70.5)[seq_len(n)] ) sf_enr <- carte_joindre(rca, stats, "prefecture", "prefecture") sf_enr$taux_prop <- sf_enr$taux_pauvrete / 100 carte_pauvrete(sf_enr, var_fgt0 = "taux_prop", source = "Donnees simulees")
Génère une carte choroplèthe à partir d'un objet sf enrichi ou de la jointure d'un shapefile avec des données statistiques.
carte_thematique( data_sf = NULL, shapefile = NULL, data = NULL, var_geo_shape = NULL, var_geo_data = NULL, var_couleur, titre = NULL, sous_titre = NULL, source = NULL, palette = c("sequentiel", "divergent"), n_classes = 5L, na_couleur = "#cccccc" )carte_thematique( data_sf = NULL, shapefile = NULL, data = NULL, var_geo_shape = NULL, var_geo_data = NULL, var_couleur, titre = NULL, sous_titre = NULL, source = NULL, palette = c("sequentiel", "divergent"), n_classes = 5L, na_couleur = "#cccccc" )
data_sf |
sf ou NULL — Objet sf avec données. Si NULL, utilise
|
shapefile |
sf ou character ou NULL — Shapefile si |
data |
data.frame ou NULL — Données à joindre si |
var_geo_shape |
character ou NULL — Variable clé dans le shapefile. Défaut : NULL. |
var_geo_data |
character ou NULL — Variable clé dans les données. Défaut : NULL. |
var_couleur |
character — Variable à représenter par la couleur |
titre |
character ou NULL — Titre de la carte. Défaut : NULL. |
sous_titre |
character ou NULL — Sous-titre. Défaut : NULL. |
source |
character ou NULL — Source des données. Défaut : NULL. |
palette |
character — Palette de couleurs : |
n_classes |
integer — Nombre de classes. Défaut : 5. |
na_couleur |
character — Couleur pour les NA. Défaut : "#cccccc". |
Un objet ggplot.
## Not run: carte_thematique( data_sf = regions_sf_enrichi, var_couleur = "taux_pauvrete_moyenne", titre = "Taux de pauvrete par region" ) ## End(Not run)## Not run: carte_thematique( data_sf = regions_sf_enrichi, var_couleur = "taux_pauvrete_moyenne", titre = "Taux de pauvrete par region" ) ## End(Not run)
Charge un fond de carte geographique directement integre dans statAfrikR. Aucun package supplementaire requis.
carte_zones( zone = c("afrique", "cemac", "cedeao", "eau", "sadc", "rca", "subdivisions"), pays = NULL )carte_zones( zone = c("afrique", "cemac", "cedeao", "eau", "sadc", "rca", "subdivisions"), pays = NULL )
zone |
character – Zone geographique :
|
pays |
character ou NULL – Filtrer par noms de pays (colonne
|
Un objet sf pret a l'emploi
# Tous les pays africains afrique <- carte_zones("afrique") # Zone CEMAC uniquement cemac <- carte_zones("cemac") # Prefectures de la RCA rca <- carte_zones("rca") # Filtrer : Cameroun + Centrafrique uniquement sous_zone <- carte_zones("afrique", pays = c("CMR", "CAF"))# Tous les pays africains afrique <- carte_zones("afrique") # Zone CEMAC uniquement cemac <- carte_zones("cemac") # Prefectures de la RCA rca <- carte_zones("rca") # Filtrer : Cameroun + Centrafrique uniquement sous_zone <- carte_zones("afrique", pays = c("CMR", "CAF"))
Retourne la fiche methodologique complete d'un indicateur : definition, formule, standard de reference, ODD, methode de variance, seuils de qualite et statut INS-ready. Conforme GSBPM 5.2 / UN NQAF.
catalogue_indicateurs( code = NULL, domaine = NULL, format = c("tableau", "liste", "complet") )catalogue_indicateurs( code = NULL, domaine = NULL, format = c("tableau", "liste", "complet") )
code |
character ou NULL – Code de l'indicateur. Si NULL, retourne la liste de tous les indicateurs disponibles. Codes disponibles : "FGT0", "FGT1", "FGT2", "IPM", "GINI", "STUNTING", "TAUX_ACTIVITE", "CHOMAGE", "INFORMEL", "MARIAGE_PRECOCE", "SATISFACTION_VIE", "PIB_CROISSANCE", "WHIPPLE" |
domaine |
character ou NULL – Filtrer par domaine. Ex : "Pauvrete monetaire", "Emploi", "Sante et nutrition". Defaut : NULL (tous les domaines) |
format |
character – Format de sortie : "liste" (objet R complet), "tableau" (tibble synthetique), "complet" (impression detaillee). Defaut : "tableau" |
Un tibble, une liste ou un affichage selon le format choisi
# Lister tous les indicateurs catalogue_indicateurs() # Fiche methodologique d'un indicateur catalogue_indicateurs("FGT0") catalogue_indicateurs("IPM") catalogue_indicateurs("GINI") # Filtrer par domaine catalogue_indicateurs(domaine = "Emploi") # Format complet avec impression catalogue_indicateurs("FGT0", format = "complet")# Lister tous les indicateurs catalogue_indicateurs() # Fiche methodologique d'un indicateur catalogue_indicateurs("FGT0") catalogue_indicateurs("IPM") catalogue_indicateurs("GINI") # Filtrer par domaine catalogue_indicateurs(domaine = "Emploi") # Format complet avec impression catalogue_indicateurs("FGT0", format = "complet")
Calcule le taux de valeurs manquantes par variable et produit un rapport de complétude. Alerte sur les variables dépassant le seuil.
check_na(data, seuil = 0.1, vars = NULL, alerter = TRUE)check_na(data, seuil = 0.1, vars = NULL, alerter = TRUE)
data |
data.frame ou tibble — Données à analyser |
seuil |
numeric — Taux de NA à partir duquel une alerte est émise (entre 0 et 1). Défaut : 0.1 (10%). |
vars |
character ou NULL — Variables à analyser. Si NULL, toutes les variables. Défaut : NULL. |
alerter |
logical — Émettre des avertissements pour les variables dépassant le seuil. Défaut : TRUE. |
Un tibble avec les colonnes : variable, n_total,
n_manquant, taux_na, statut.
## Not run: rapport_na <- check_na(donnees_enquete) rapport_na <- check_na(donnees_enquete, seuil = 0.05, vars = c("age", "revenu")) ## End(Not run)## Not run: rapport_na <- check_na(donnees_enquete) rapport_na <- check_na(donnees_enquete, seuil = 0.05, vars = c("age", "revenu")) ## End(Not run)
Vérifie la cohérence des types de variables par rapport aux types attendus. Détecte les problèmes courants : dates stockées en caractères, nombres stockés en texte, variables binaires incohérentes.
check_types(data, dictionnaire = NULL)check_types(data, dictionnaire = NULL)
data |
data.frame ou tibble — Données à vérifier |
dictionnaire |
data.frame ou NULL — Dictionnaire avec colonnes
|
Un tibble avec les anomalies détectées :
variable, type_actuel, type_attendu, probleme.
## Not run: anomalies <- check_types(donnees_enquete) ## End(Not run)## Not run: anomalies <- check_types(donnees_enquete) ## End(Not run)
Detecte les incoherences courantes dans les donnees demographiques : age mere < age enfant, dates d'evenements incoherentes, ages impossibles, sex-ratio aberrants, etc.
coherence_demo( donnees, var_age = NULL, var_age_mere = NULL, var_age_enfant = NULL, var_age_deces = NULL, var_sexe = NULL, age_max_plausible = 120L )coherence_demo( donnees, var_age = NULL, var_age_mere = NULL, var_age_enfant = NULL, var_age_deces = NULL, var_sexe = NULL, age_max_plausible = 120L )
donnees |
data.frame – Donnees individuelles ou menages |
var_age |
character ou NULL – Variable age. Defaut : NULL |
var_age_mere |
character ou NULL – Variable age de la mere. Defaut : NULL |
var_age_enfant |
character ou NULL – Variable age de l'enfant. Defaut : NULL |
var_age_deces |
character ou NULL – Variable age au deces. Defaut : NULL |
var_sexe |
character ou NULL – Variable sexe. Defaut : NULL |
age_max_plausible |
integer – Age maximum plausible. Defaut : 120L |
Un tibble des anomalies detectees avec leur nombre
set.seed(42) n <- 500 menages <- data.frame( age = c(sample(0:100, n-5, TRUE), rep(-1, 3), rep(130, 2)), age_mere = sample(15:60, n, TRUE), age_enfant = sample(0:30, n, TRUE), age_deces = c(sample(1:90, n-10, TRUE), rep(NA, 10)), sexe = sample(c("H","F","X"), n, TRUE, prob=c(0.49,0.49,0.02)) ) coherence_demo(menages, var_age="age", var_age_mere="age_mere", var_age_enfant="age_enfant", var_sexe="sexe")set.seed(42) n <- 500 menages <- data.frame( age = c(sample(0:100, n-5, TRUE), rep(-1, 3), rep(130, 2)), age_mere = sample(15:60, n, TRUE), age_enfant = sample(0:30, n, TRUE), age_deces = c(sample(1:90, n-10, TRUE), rep(NA, 10)), sexe = sample(c("H","F","X"), n, TRUE, prob=c(0.49,0.49,0.02)) ) coherence_demo(menages, var_age="age", var_age_mere="age_mere", var_age_enfant="age_enfant", var_sexe="sexe")
Compare les resultats du MPI global PNUD/OPHI et d'un IPM national. Produit un tableau des ecarts et un graphique.
comparer_ipm( ipm_global, ipm_national, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )comparer_ipm( ipm_global, ipm_national, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )
ipm_global |
saf_ipm – Resultat IPM global (calcul_ipm()) |
ipm_national |
saf_ipm – Resultat IPM national (calcul_ipm_national()) |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
Un tibble comparatif + graphique (invisible)
set.seed(42) n <- 200 men <- data.frame( nutr = rbinom(n,1,0.35), elec = rbinom(n,1,0.6), eau = rbinom(n,1,0.4), scol = rbinom(n,1,0.3), mort = rbinom(n,1,0.12), comb = rbinom(n,1,0.5), poids = runif(n,0.8,1.3) ) ipm_g <- calcul_ipm(men, var_nutrition="nutr", var_electricite="elec", var_eau="eau", var_scolarisation="scol", var_mortalite_inf="mort", var_combustible="comb", poids="poids") ipm_n <- calcul_ipm_national(men, indicateurs=list( eau = list(var="eau", poids=0.4, dimension="Vie"), elec = list(var="elec", poids=0.35, dimension="Vie"), scol = list(var="scol", poids=0.25, dimension="Education") ), poids="poids") comparer_ipm(ipm_g, ipm_n, pays="Centrafrique", annee=2026L)set.seed(42) n <- 200 men <- data.frame( nutr = rbinom(n,1,0.35), elec = rbinom(n,1,0.6), eau = rbinom(n,1,0.4), scol = rbinom(n,1,0.3), mort = rbinom(n,1,0.12), comb = rbinom(n,1,0.5), poids = runif(n,0.8,1.3) ) ipm_g <- calcul_ipm(men, var_nutrition="nutr", var_electricite="elec", var_eau="eau", var_scolarisation="scol", var_mortalite_inf="mort", var_combustible="comb", poids="poids") ipm_n <- calcul_ipm_national(men, indicateurs=list( eau = list(var="eau", poids=0.4, dimension="Vie"), elec = list(var="elec", poids=0.35, dimension="Vie"), scol = list(var="scol", poids=0.25, dimension="Education") ), poids="poids") comparer_ipm(ipm_g, ipm_n, pays="Centrafrique", annee=2026L)
Compare les estimations du PIB publiees par l'INS et les institutions internationales. Identifie les ecarts, leurs causes probables et produit un tableau de diagnostic. Outil cle pour renforcer la maitrise du narratif statistique national.
comparer_pib( pib_ins, pib_intl, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), unite = "Mds FCFA", methode_ins = NULL, seuil_alerte = 3 )comparer_pib( pib_ins, pib_intl, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), unite = "Mds FCFA", methode_ins = NULL, seuil_alerte = 3 )
pib_ins |
numeric – PIB publie par l'INS (en milliards FCFA ou USD selon l'unite choisie) |
pib_intl |
named numeric – PIB des institutions internationales. Vecteur nomme : ex : c(UNSD=245.2, BM=241.8, FMI=248.5) |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee de reference |
unite |
character – Unite monetaire. Defaut : "Mds FCFA" |
methode_ins |
character ou NULL – Methode INS : "production", "depenses", "revenus". Defaut : NULL |
seuil_alerte |
numeric – Seuil d'ecart en % declenchant une alerte. Defaut : 3.0 |
Un objet de classe saf_pib
res <- comparer_pib( pib_ins = 2450.5, pib_intl = c(UNSD=2380.2, BM=2412.8, FMI=2398.5), pays = "Cameroun", annee = 2023L, unite = "Mds FCFA" ) print(res)res <- comparer_pib( pib_ins = 2450.5, pib_intl = c(UNSD=2380.2, BM=2412.8, FMI=2398.5), pays = "Cameroun", annee = 2023L, unite = "Mds FCFA" ) print(res)
Crée une archive ZIP structurée prête à diffuser, incluant les données, la documentation, les métadonnées et les scripts de traitement. Conforme aux standards IHSN de documentation des enquêtes.
compresser_package_diffusion( donnees, repertoire_sortie, nom_package, inclure_csv = TRUE, inclure_rds = TRUE, fichiers_supplementaires = NULL, metadonnees = NULL )compresser_package_diffusion( donnees, repertoire_sortie, nom_package, inclure_csv = TRUE, inclure_rds = TRUE, fichiers_supplementaires = NULL, metadonnees = NULL )
donnees |
data.frame ou tibble — Données à archiver |
repertoire_sortie |
character — Répertoire de destination de l'archive |
nom_package |
character — Nom de base de l'archive (sans extension) |
inclure_csv |
logical — Inclure les données en CSV. Défaut : TRUE. |
inclure_rds |
logical — Inclure les données en RDS. Défaut : TRUE. |
fichiers_supplementaires |
character ou NULL — Chemins vers des fichiers additionnels à inclure (rapports, scripts, etc.). Défaut : NULL. |
metadonnees |
list ou NULL — Métadonnées à inclure dans un fichier README automatique. Défaut : NULL. |
Chemin de l'archive ZIP (invisible).
## Not run: compresser_package_diffusion( donnees = donnees_emop_anon, repertoire_sortie = "diffusion/", nom_package = "EMOP_BEN_2023_v1", fichiers_supplementaires = c(file.path(tempdir(), "rapport.docx"), file.path(tempdir(), "emop_ddi.xml")), metadonnees = list( titre = "EMOP Bénin 2023", institution = "INSAE", version = "1.0" ) ) ## End(Not run)## Not run: compresser_package_diffusion( donnees = donnees_emop_anon, repertoire_sortie = "diffusion/", nom_package = "EMOP_BEN_2023_v1", fichiers_supplementaires = c(file.path(tempdir(), "rapport.docx"), file.path(tempdir(), "emop_ddi.xml")), metadonnees = list( titre = "EMOP Bénin 2023", institution = "INSAE", version = "1.0" ) ) ## End(Not run)
Proportion de la population faisant confiance aux institutions publiques (gouvernement, justice, police, parlement). Indicateur de gouvernance percu. Methodologie Afrobarometer.
confiance_institutions( donnees, vars_institutions, codes_confiance = NULL, poids = NULL, sous_groupes = NULL )confiance_institutions( donnees, vars_institutions, codes_confiance = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles |
vars_institutions |
named character – Vecteur nomme : institution -> variable 0/1 (ou codes_confiance si categorielle). Ex : c(Gouvernement="conf_gouv", Justice="conf_just") |
codes_confiance |
numeric ou NULL – Codes indiquant confiance. Defaut : NULL (variables deja binaires) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec taux de confiance par institution
set.seed(42) n <- 500 individus <- data.frame( conf_gouv = rbinom(n, 1, 0.35), conf_just = rbinom(n, 1, 0.42), conf_pol = rbinom(n, 1, 0.38), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) confiance_institutions(individus, vars_institutions = c(Gouvernement="conf_gouv", Justice="conf_just", Police="conf_pol"), poids="poids", sous_groupes="milieu")set.seed(42) n <- 500 individus <- data.frame( conf_gouv = rbinom(n, 1, 0.35), conf_just = rbinom(n, 1, 0.42), conf_pol = rbinom(n, 1, 0.38), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) confiance_institutions(individus, vars_institutions = c(Gouvernement="conf_gouv", Justice="conf_just", Police="conf_pol"), poids="poids", sous_groupes="milieu")
Produit la courbe de Lorenz institutionnelle montrant la distribution cumulee des revenus. L'aire entre la diagonale et la courbe est egale a Gini/2.
courbe_lorenz( donnees, var_revenu, poids = NULL, var_groupe = NULL, titre = NULL, source = NULL )courbe_lorenz( donnees, var_revenu, poids = NULL, var_groupe = NULL, titre = NULL, source = NULL )
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
var_groupe |
character ou NULL – Variable de groupe pour comparaison. Defaut : NULL |
titre |
character ou NULL – Titre. Defaut : NULL |
source |
character ou NULL – Source. Defaut : NULL |
Un objet ggplot2
set.seed(42) menages <- data.frame( depense = c(rexp(150, 1/150000), rexp(50, 1/500000)), milieu = sample(c("urbain","rural"), 200, TRUE), poids = runif(200, 0.8, 1.3) ) courbe_lorenz(menages, "depense", poids = "poids")set.seed(42) menages <- data.frame( depense = c(rexp(150, 1/150000), rexp(50, 1/500000)), milieu = sample(c("urbain","rural"), 200, TRUE), poids = runif(200, 0.8, 1.3) ) courbe_lorenz(menages, "depense", poids = "poids")
Cree un objet de design d'enquete en precisant les strates, grappes, poids de sondage et la correction de population finie (FPC). Compatible avec les enquetes EHCVM, DHS, MICS, EFT, RGPH.
creer_design( donnees, var_poids, var_strate = NULL, var_grappe = NULL, var_fpc = NULL, type = c("stratifie_grappes", "stratifie", "en_grappes", "simple") )creer_design( donnees, var_poids, var_strate = NULL, var_grappe = NULL, var_fpc = NULL, type = c("stratifie_grappes", "stratifie", "en_grappes", "simple") )
donnees |
data.frame – Donnees de l'enquete |
var_poids |
character – Variable de poids de sondage |
var_strate |
character ou NULL – Variable de stratification. Defaut : NULL |
var_grappe |
character ou NULL – Variable d'unites primaires de sondage (grappes / UPS). Defaut : NULL |
var_fpc |
character ou NULL – Variable de correction de population finie (taille de la strate dans la population). Defaut : NULL |
type |
character – Type de design : "stratifie", "en_grappes", "stratifie_grappes", "simple". Defaut : "stratifie_grappes" |
Un objet de classe saf_design encapsulant un objet
survey::svydesign
set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural","Semi-urbain"), n, TRUE), grappe = sample(1:30, n, TRUE), revenu = pmax(0, rnorm(n, 180000, 90000)), pauvre = rbinom(n, 1, 0.45) ) design <- creer_design(donnees, "poids_sond", var_strate="strate", var_grappe="grappe") print(design)set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural","Semi-urbain"), n, TRUE), grappe = sample(1:30, n, TRUE), revenu = pmax(0, rnorm(n, 180000, 90000)), pauvre = rbinom(n, 1, 0.45) ) design <- creer_design(donnees, "poids_sond", var_strate="strate", var_grappe="grappe") print(design)
Decompose un indice FGT en contributions relatives de chaque sous-groupe a la pauvrete nationale.
decomposer_fgt(fgt_obj, variable, alpha_cible = 0)decomposer_fgt(fgt_obj, variable, alpha_cible = 0)
fgt_obj |
objet |
variable |
character – Sous-groupe a decomposer |
alpha_cible |
numeric – Indice a decomposer : 0, 1 ou 2. Defaut : 0 |
Tibble avec contributions absolues et relatives
set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/400000)), poids = runif(100, 0.8, 1.2), milieu = sample(c("urbain", "rural"), 100, TRUE, prob = c(0.4, 0.6)) ) fgt <- calcul_fgt(menages, "depense_pc", 220000, poids = "poids", sous_groupes = "milieu") decomposer_fgt(fgt, "milieu", alpha_cible = 0)set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/400000)), poids = runif(100, 0.8, 1.2), milieu = sample(c("urbain", "rural"), 100, TRUE, prob = c(0.4, 0.6)) ) fgt <- calcul_fgt(menages, "depense_pc", 220000, poids = "poids", sous_groupes = "milieu") decomposer_fgt(fgt, "milieu", alpha_cible = 0)
Calcule les mesures d'inégalité (Gini, Theil, Atkinson) et leur décomposition inter/intra-groupe pour une variable de revenu ou de dépense.
decomposer_inegalite( data, var_revenu, var_groupe = NULL, var_poids = NULL, mesures = c("all", "gini", "theil", "atkinson") )decomposer_inegalite( data, var_revenu, var_groupe = NULL, var_poids = NULL, mesures = c("all", "gini", "theil", "atkinson") )
data |
data.frame ou tibble — Données |
var_revenu |
character — Variable de revenu/dépense (strictement positive) |
var_groupe |
character ou NULL — Variable de groupe pour la décomposition. Défaut : NULL. |
var_poids |
character ou NULL — Variable de pondération. Défaut : NULL. |
mesures |
character — Mesures à calculer :
|
Une liste avec les mesures d'inégalité et leur décomposition.
## Not run: donnees <- data.frame( depense_totale = rnorm(100, 250000, 80000), milieu = sample(c("urbain", "rural"), 100, replace = TRUE) ) decomposer_inegalite(donnees, var_revenu="depense_totale", var_groupe="milieu") ## End(Not run)## Not run: donnees <- data.frame( depense_totale = rnorm(100, 250000, 80000), milieu = sample(c("urbain", "rural"), 100, replace = TRUE) ) decomposer_inegalite(donnees, var_revenu="depense_totale", var_groupe="milieu") ## End(Not run)
Decompose l'IPM par region, milieu ou sexe du chef de menage. Retourne H, A et IPM par groupe, ainsi que la contribution de chaque groupe a l'IPM national.
decomposer_ipm(res_ipm, donnees, var_groupe, poids = NULL)decomposer_ipm(res_ipm, donnees, var_groupe, poids = NULL)
res_ipm |
saf_ipm – Resultat de |
donnees |
data.frame – Donnees originales (meme ordre que lors du calcul de l'IPM) |
var_groupe |
character – Variable de sous-groupe (ex : "region", "milieu", "sexe_cm") |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
Un tibble avec H, A, IPM, n_obs et contribution par groupe
set.seed(42) n <- 300 menages <- data.frame( nutrition = rbinom(n, 1, 0.35), electricite = rbinom(n, 1, 0.60), eau = rbinom(n, 1, 0.40), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) res <- calcul_ipm(menages, var_nutrition = "nutrition", var_electricite = "electricite", var_eau = "eau", poids = "poids") decomposer_ipm(res, menages, var_groupe = "milieu", poids = "poids")set.seed(42) n <- 300 menages <- data.frame( nutrition = rbinom(n, 1, 0.35), electricite = rbinom(n, 1, 0.60), eau = rbinom(n, 1, 0.40), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) res <- calcul_ipm(menages, var_nutrition = "nutrition", var_electricite = "electricite", var_eau = "eau", poids = "poids") decomposer_ipm(res, menages, var_groupe = "milieu", poids = "poids")
Decompose l'inegalite totale en composantes inter-groupe et intra-groupe selon l'indice de Theil T (entropie generalisee GE(1)). Indispensable pour identifier les sources spatiales ou sociales de l'inegalite.
decomposer_theil(donnees, var_revenu, var_groupe, poids = NULL) theil(donnees, var_revenu, var_groupe, poids = NULL)decomposer_theil(donnees, var_revenu, var_groupe, poids = NULL) theil(donnees, var_revenu, var_groupe, poids = NULL)
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu |
var_groupe |
character – Variable de groupe (region, milieu, sexe_cm) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
Un tibble avec Theil total, inter-groupe, intra-groupe et contribution de chaque groupe
set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), milieu = sample(c("urbain","rural"), 300, TRUE), poids = runif(300, 0.8, 1.3) ) decomposer_theil(menages, "depense", "milieu", poids = "poids")set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), milieu = sample(c("urbain","rural"), 300, TRUE), poids = runif(300, 0.8, 1.3) ) decomposer_theil(menages, "depense", "milieu", poids = "poids")
Identifie les zones presentes dans les donnees mais absentes de la reference geographique. Propose des suggestions d'appariement par score de similarite (Jaro-Winkler). Essentiel avant toute jointure cartographique.
detecter_ecarts_geo( donnees, var_zone, reference, var_ref = "nom_local", n_suggestions = 3L )detecter_ecarts_geo( donnees, var_zone, reference, var_ref = "nom_local", n_suggestions = 3L )
donnees |
data.frame – Donnees avec zones a verifier |
var_zone |
character – Variable zone dans les donnees |
reference |
data.frame ou saf_concordance – Reference geographique |
var_ref |
character – Variable zone dans la reference. Defaut : "nom_local" |
n_suggestions |
integer – Nombre de suggestions par zone. Defaut : 3L |
Un tibble avec zones non appariees et suggestions
donnees <- data.frame( region = c("Bangui","Ombella-Mpoko","Kemo","Zone inconnue"), valeur = c(100, 200, 150, 80), stringsAsFactors = FALSE ) reference <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Kemo", "Bamingui-Bangoran","Mbomou"), stringsAsFactors = FALSE ) detecter_ecarts_geo(donnees, "region", reference, "nom_local")donnees <- data.frame( region = c("Bangui","Ombella-Mpoko","Kemo","Zone inconnue"), valeur = c(100, 200, 150, 80), stringsAsFactors = FALSE ) reference <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Kemo", "Bamingui-Bangoran","Mbomou"), stringsAsFactors = FALSE ) detecter_ecarts_geo(donnees, "region", reference, "nom_local")
Prevalence de l'emaciation : poids-pour-taille < -2 ecarts-types (standards OMS 2006). Indicateur de malnutrition aigue.
emaciation( donnees, var_poids_taille_z, poids = NULL, sous_groupes = NULL, seuil = -2 )emaciation( donnees, var_poids_taille_z, poids = NULL, sous_groupes = NULL, seuil = -2 )
donnees |
data.frame – Donnees enfants < 5 ans |
var_poids_taille_z |
character – Score Z poids-pour-taille (WHZ) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
seuil |
numeric – Seuil score Z. Defaut : -2 |
Un objet de classe saf_anthropo
set.seed(42) n <- 400 enfants <- data.frame( whz = rnorm(n, -0.8, 1.1), poids = runif(n, 0.8, 1.3) ) emaciation(enfants, var_poids_taille_z = "whz", poids = "poids")set.seed(42) n <- 400 enfants <- data.frame( whz = rnorm(n, -0.8, 1.1), poids = runif(n, 0.8, 1.3) ) emaciation(enfants, var_poids_taille_z = "whz", poids = "poids")
Calcule la part de l'emploi informel selon la definition OIT 2013. L'emploi informel comprend les travailleurs sans contrat ecrit, sans protection sociale et sans conges payes.
emploi_informel( donnees, var_informel, var_statut = NULL, poids = NULL, sous_groupes = NULL )emploi_informel( donnees, var_informel, var_statut = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees employes |
var_informel |
character – Variable 0/1 : emploi informel |
var_statut |
character ou NULL – Variable de statut d'emploi (pour decomposition). Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) n <- 400 employes <- data.frame( informel = rbinom(n, 1, 0.72), secteur = sample(c("agriculture","services","industrie"), n, TRUE), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) emploi_informel(employes, "informel", poids="poids", sous_groupes=c("secteur","sexe"))set.seed(42) n <- 400 employes <- data.frame( informel = rbinom(n, 1, 0.72), secteur = sample(c("agriculture","services","industrie"), n, TRUE), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) emploi_informel(employes, "informel", poids="poids", sous_groupes=c("secteur","sexe"))
Part des actifs occupes en situation d'emploi vulnerable : travailleurs familiaux non remuneres et travailleurs independants precaires. ODD 8.3.1.
emploi_vulnerable(donnees, var_vulnerable, poids = NULL, sous_groupes = NULL)emploi_vulnerable(donnees, var_vulnerable, poids = NULL, sous_groupes = NULL)
donnees |
data.frame – Donnees actifs occupes |
var_vulnerable |
character – Variable 0/1 : emploi vulnerable |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) n <- 400 employes <- data.frame( vulnerable = rbinom(n, 1, 0.55), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) emploi_vulnerable(employes, "vulnerable", poids="poids", sous_groupes="sexe")set.seed(42) n <- 400 employes <- data.frame( vulnerable = rbinom(n, 1, 0.55), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) emploi_vulnerable(employes, "vulnerable", poids="poids", sous_groupes="sexe")
Genere un fichier R autonome et entierement commente que l'agent INS peut ouvrir, modifier et relancer librement. Contient l'integralite du code du dashboard avec des sections clairement identifiees pour la personnalisation : titres, couleurs, indicateurs, filtres, sections.
exporter_code_dashboard( chemin = "dashboard_statAfrikR.R", pays = "Pays", titre = NULL, sous_titre = NULL, var_poids = NULL, var_region = NULL, var_milieu = NULL )exporter_code_dashboard( chemin = "dashboard_statAfrikR.R", pays = "Pays", titre = NULL, sous_titre = NULL, var_poids = NULL, var_region = NULL, var_milieu = NULL )
chemin |
character – Chemin du fichier R a generer. Defaut : "dashboard_statAfrikR.R" |
pays |
character – Nom du pays pre-rempli. Defaut : "Pays" |
titre |
character ou NULL – Titre pre-rempli. Defaut : NULL |
sous_titre |
character ou NULL – Sous-titre pre-rempli. Defaut : NULL |
var_poids |
character ou NULL – Variable poids pre-remplie. Defaut : NULL |
var_region |
character ou NULL – Variable region pre-remplie. Defaut : NULL |
var_milieu |
character ou NULL – Variable milieu pre-remplie. Defaut : NULL |
Invisible : chemin du fichier genere
## Not run: # Generer le code source personnalisable exporter_code_dashboard( chemin = "mon_dashboard_rca.R", pays = "Republique Centrafricaine", titre = "Tableau de bord - Enquete EHCVM 2022", sous_titre = "Indicateurs bien-etre - INS RCA", var_poids = "poids_sondage", var_region = "prefecture", var_milieu = "milieu" ) # Ouvrir le fichier genere dans RStudio file.edit("mon_dashboard_rca.R") ## End(Not run)## Not run: # Generer le code source personnalisable exporter_code_dashboard( chemin = "mon_dashboard_rca.R", pays = "Republique Centrafricaine", titre = "Tableau de bord - Enquete EHCVM 2022", sous_titre = "Indicateurs bien-etre - INS RCA", var_poids = "poids_sondage", var_region = "prefecture", var_milieu = "milieu" ) # Ouvrir le fichier genere dans RStudio file.edit("mon_dashboard_rca.R") ## End(Not run)
Exporte une liste de tableaux dans un classeur Excel avec feuille de sommaire.
exporter_excel_ins( tableaux, chemin, titre_classeur = "Statistiques INS", pays = NULL, annee = NULL, style = c("ins_standard", "minimal") )exporter_excel_ins( tableaux, chemin, titre_classeur = "Statistiques INS", pays = NULL, annee = NULL, style = c("ins_standard", "minimal") )
tableaux |
list – Liste nommee de data.frames a exporter |
chemin |
character – Chemin du fichier Excel |
titre_classeur |
character – Titre general.
Defaut : |
pays |
character ou NULL – Pays/organisation. Defaut : NULL |
annee |
integer ou NULL – Annee de reference. Defaut : NULL |
style |
character – Style : |
Chemin du fichier cree (invisible)
## Not run: tableaux <- list( "Descriptif" = data.frame( variable = c("age", "revenu"), n = c(200L, 200L), moyenne = c(38.2, 245000) ), "Croisement" = data.frame( region = c("Nord", "Sud"), urbain = c(45.2, 32.1), rural = c(54.8, 67.9) ) ) chemin <- file.path(tempdir(), "stats_ins.xlsx") exporter_excel_ins(tableaux, chemin, titre_classeur = "Enquete menages 2026", pays = "Centrafrique", annee = 2026L) ## End(Not run)## Not run: tableaux <- list( "Descriptif" = data.frame( variable = c("age", "revenu"), n = c(200L, 200L), moyenne = c(38.2, 245000) ), "Croisement" = data.frame( region = c("Nord", "Sud"), urbain = c(45.2, 32.1), rural = c(54.8, 67.9) ) ) chemin <- file.path(tempdir(), "stats_ins.xlsx") exporter_excel_ins(tableaux, chemin, titre_classeur = "Enquete menages 2026", pays = "Centrafrique", annee = 2026L) ## End(Not run)
Exporte un objet ggplot en PNG, PDF ou SVG avec les paramètres optimaux pour publication officielle.
exporter_graphique( graphique, chemin, largeur = 20, hauteur = 14, dpi = 300L, fond = "white" )exporter_graphique( graphique, chemin, largeur = 20, hauteur = 14, dpi = 300L, fond = "white" )
graphique |
ggplot — Objet graphique à exporter |
chemin |
character — Chemin de sortie avec extension (.png, .pdf, .svg) |
largeur |
numeric — Largeur en cm. Défaut : 20. |
hauteur |
numeric — Hauteur en cm. Défaut : 14. |
dpi |
integer — Résolution pour PNG (ignoré pour PDF/SVG). Défaut : 300. |
fond |
character — Couleur de fond. Défaut : "white". |
Chemin du fichier exporté (invisible).
## Not run: donnees <- data.frame(age=sample(0:80,100,replace=TRUE), sexe=sample(c("H","F"),100,replace=TRUE)) p <- pyramide_ages(donnees, "age", "sexe") exporter_graphique(p, file.path(tempdir(), "pyramide.png")) ## End(Not run)## Not run: donnees <- data.frame(age=sample(0:80,100,replace=TRUE), sexe=sample(c("H","F"),100,replace=TRUE)) p <- pyramide_ages(donnees, "age", "sexe") exporter_graphique(p, file.path(tempdir(), "pyramide.png")) ## End(Not run)
Génère un fichier SDMX-CSV ou SDMX-ML (Structure Data Message) conforme aux standards SDMX 2.1 pour l'échange de données statistiques avec les organisations internationales (FMI, BM, OCDE, etc.).
exporter_sdmx( data, flux_donnees, agence = "INS", vars_dimensions, vars_mesures, vars_attributs = NULL, fichier_sortie, version = "2.1" )exporter_sdmx( data, flux_donnees, agence = "INS", vars_dimensions, vars_mesures, vars_attributs = NULL, fichier_sortie, version = "2.1" )
data |
data.frame ou tibble — Données à exporter |
flux_donnees |
character — Identifiant du flux de données (DataFlow). Ex: "BEN_EMOP_2023" |
agence |
character — Identifiant de l'agence productrice. Ex: "INSAE", "INSD". Défaut : "INS". |
vars_dimensions |
character — Variables identifiant les dimensions (axes d'analyse). Ex: c("PAYS", "ANNEE", "REGION"). |
vars_mesures |
character — Variables contenant les valeurs mesurées. |
vars_attributs |
character ou NULL — Variables d'attributs (métadonnées). Défaut : NULL. |
fichier_sortie |
character — Chemin du fichier de sortie (.csv). |
version |
character — Version SDMX. Défaut : "2.1". |
Chemin du fichier exporté (invisible).
## Not run: exporter_sdmx( data = indicateurs_regionaux, flux_donnees = "BEN_IDH_2023", agence = "INSAE", vars_dimensions = c("region", "annee"), vars_mesures = c("idh", "taux_pauvrete"), fichier_sortie = file.path(tempdir(), "indicateurs_sdmx.csv") ) ## End(Not run)## Not run: exporter_sdmx( data = indicateurs_regionaux, flux_donnees = "BEN_IDH_2023", agence = "INSAE", vars_dimensions = c("region", "annee"), vars_mesures = c("idh", "taux_pauvrete"), fichier_sortie = file.path(tempdir(), "indicateurs_sdmx.csv") ) ## End(Not run)
Fusionne plusieurs datasets horizontalement (jointure) ou verticalement (empilement). Gère les conflits de noms de variables et produit un rapport de fusion.
fusion_datasets( liste_data, type = c("vertical", "horizontal"), cle = NULL, jointure = c("gauche", "interne", "droite", "complete"), suffixes = c("_1", "_2") )fusion_datasets( liste_data, type = c("vertical", "horizontal"), cle = NULL, jointure = c("gauche", "interne", "droite", "complete"), suffixes = c("_1", "_2") )
liste_data |
list — Liste nommée de data.frames/tibbles à fusionner |
type |
character — Type de fusion :
|
cle |
character ou NULL — Variable(s) clé(s) pour la fusion
horizontale. Obligatoire si |
jointure |
character — Type de jointure horizontale :
|
suffixes |
character — Suffixes pour les variables en conflit lors d'une fusion horizontale. Défaut : c("_1", "_2"). |
Un tibble fusionné.
## Not run: # Empilement de deux vagues d'enquête donnees_total <- fusion_datasets( liste_data = list(vague1 = emop_2022, vague2 = emop_2023), type = "vertical" ) # Jointure ménages + individus donnees_merged <- fusion_datasets( liste_data = list(menages = df_menages, individus = df_individus), type = "horizontal", cle = "id_menage" ) ## End(Not run)## Not run: # Empilement de deux vagues d'enquête donnees_total <- fusion_datasets( liste_data = list(vague1 = emop_2022, vague2 = emop_2023), type = "vertical" ) # Jointure ménages + individus donnees_merged <- fusion_datasets( liste_data = list(menages = df_menages, individus = df_individus), type = "horizontal", cle = "id_menage" ) ## End(Not run)
Genere un bulletin statistique mensuel ou trimestriel avec indicateurs cles, graphiques de tendance et tableau de bord.
generer_bulletin( indicateurs, periode, pays = "Pays", sortie = c("html", "word"), chemin_sortie = tempdir(), ouvrir = FALSE )generer_bulletin( indicateurs, periode, pays = "Pays", sortie = c("html", "word"), chemin_sortie = tempdir(), ouvrir = FALSE )
indicateurs |
data.frame – Tableau des indicateurs avec colonnes :
|
periode |
character – Periode de reference (ex : "T1 2026", "Janvier 2026") |
pays |
character – Nom du pays. Defaut : "Pays" |
sortie |
character – Format : |
chemin_sortie |
character – Repertoire de destination.
Defaut : |
ouvrir |
logical – Ouvrir apres generation. Defaut : FALSE |
Chemin du fichier genere (invisible)
## Not run: indicateurs <- data.frame( indicateur = c("Taux de pauvrete", "Taux de chomage", "Acces eau potable", "Taux alphabetisation"), valeur = c(71.8, 14.5, 42.3, 56.7), unite = c("%", "%", "%", "%"), periode = rep("2026", 4) ) generer_bulletin(indicateurs, periode = "T1 2026", pays = "Republique Centrafricaine") ## End(Not run)## Not run: indicateurs <- data.frame( indicateur = c("Taux de pauvrete", "Taux de chomage", "Acces eau potable", "Taux alphabetisation"), valeur = c(71.8, 14.5, 42.3, 56.7), unite = c("%", "%", "%", "%"), periode = rep("2026", 4) ) generer_bulletin(indicateurs, periode = "T1 2026", pays = "Republique Centrafricaine") ## End(Not run)
Produit une fiche de métadonnées au format DDI (Data Documentation Initiative) Codebook 2.5, standard international pour l'archivage des enquêtes statistiques (IHSN, NADA, NESSTAR).
generer_metadonnees_ddi( data, titre = NULL, pays = NULL, annee = NULL, institution = NULL, auteurs = NULL, description = NULL, fichier_sortie = NULL, langue = "fr" )generer_metadonnees_ddi( data, titre = NULL, pays = NULL, annee = NULL, institution = NULL, auteurs = NULL, description = NULL, fichier_sortie = NULL, langue = "fr" )
data |
data.frame ou tibble — Données de l'enquête |
titre |
character — Titre de l'enquête |
pays |
character — Pays concerné |
annee |
integer ou character — Année de l'enquête |
institution |
character — Institution productrice |
auteurs |
character ou NULL — Auteurs. Défaut : NULL. |
description |
character ou NULL — Description de l'enquête. Défaut : NULL. |
fichier_sortie |
character — Chemin du fichier XML de sortie |
langue |
character — Langue principale. Défaut : "fr". |
Chemin du fichier généré (invisible).
## Not run: generer_metadonnees_ddi( data = donnees_emop, titre = "Enquête Modulaire sur les Conditions de Vie — 2023", pays = "Bénin", annee = 2023, institution = "INSAE", fichier_sortie = file.path(tempdir(), "emop_2023_ddi.xml") ) ## End(Not run)## Not run: generer_metadonnees_ddi( data = donnees_emop, titre = "Enquête Modulaire sur les Conditions de Vie — 2023", pays = "Bénin", annee = 2023, institution = "INSAE", fichier_sortie = file.path(tempdir(), "emop_2023_ddi.xml") ) ## End(Not run)
Produit un rapport Word (.docx) ou PDF à partir d'un template R Markdown. Intègre automatiquement les tableaux, graphiques et métadonnées. Compatible avec les templates AFRISTAT et PARIS21.
generer_rapport( donnees, template = "bulletin_mensuel", format_sortie = c("word", "pdf"), fichier_sortie = NULL, metadonnees = NULL, ouvrir = FALSE )generer_rapport( donnees, template = "bulletin_mensuel", format_sortie = c("word", "pdf"), fichier_sortie = NULL, metadonnees = NULL, ouvrir = FALSE )
donnees |
data.frame ou tibble — Données à inclure dans le rapport |
template |
character — Chemin vers le template .Rmd ou nom d'un
template intégré : |
format_sortie |
character — |
fichier_sortie |
character ou NULL — Chemin du fichier de sortie. Si NULL, génère un nom automatique. Défaut : NULL. |
metadonnees |
list ou NULL — Liste de métadonnées à injecter : titre, auteur, pays, annee, institution. Défaut : NULL. |
ouvrir |
logical — Ouvrir le rapport après génération. Défaut : FALSE. |
Chemin du fichier généré (invisible).
## Not run: generer_rapport( donnees = resultats_enquete, template = "bulletin_mensuel", format_sortie = "word", metadonnees = list( titre = "Bulletin mensuel — Mars 2024", pays = "Bénin", institution = "INSAE", annee = 2024 ) ) ## End(Not run)## Not run: generer_rapport( donnees = resultats_enquete, template = "bulletin_mensuel", format_sortie = "word", metadonnees = list( titre = "Bulletin mensuel — Mars 2024", pays = "Bénin", institution = "INSAE", annee = 2024 ) ) ## End(Not run)
Genere un rapport statistique complet a partir de donnees d'enquete menage, en utilisant un template R Markdown pre-construit. Le rapport inclut une page de garde, des statistiques descriptives, une pyramide demographique et les indicateurs cles.
generer_rapport_enquete( donnees, meta = list(), template = c("enquete_menage", "bulletin"), sortie = c("html", "pdf", "word"), chemin_sortie = tempdir(), vars_analyse = NULL, var_poids = NULL, ouvrir = FALSE )generer_rapport_enquete( donnees, meta = list(), template = c("enquete_menage", "bulletin"), sortie = c("html", "pdf", "word"), chemin_sortie = tempdir(), vars_analyse = NULL, var_poids = NULL, ouvrir = FALSE )
donnees |
data.frame – Donnees d'enquete menage |
meta |
list – Metadonnees du rapport. Elements attendus :
|
template |
character – Nom du template :
|
sortie |
character – Format de sortie : |
chemin_sortie |
character – Repertoire de destination.
Defaut : |
vars_analyse |
character ou NULL – Variables a analyser. Si NULL, detecte automatiquement les variables numeriques. Defaut : NULL |
var_poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
ouvrir |
logical – Ouvrir le rapport apres generation. Defaut : FALSE |
Chemin du fichier genere (invisible)
## Not run: set.seed(42) donnees <- data.frame( age = sample(18:70, 200, replace = TRUE), revenu = rexp(200, rate = 1/250000), sexe = sample(c("H","F"), 200, TRUE), milieu = sample(c("urbain","rural"), 200, TRUE), poids = runif(200, 0.8, 1.3) ) meta <- list( pays = "Republique Centrafricaine", titre = "Enquete sur les conditions de vie des menages", annee = 2026L, source = "ICASEES", auteur = "Direction des Statistiques" ) generer_rapport_enquete(donnees, meta, sortie = "html") ## End(Not run)## Not run: set.seed(42) donnees <- data.frame( age = sample(18:70, 200, replace = TRUE), revenu = rexp(200, rate = 1/250000), sexe = sample(c("H","F"), 200, TRUE), milieu = sample(c("urbain","rural"), 200, TRUE), poids = runif(200, 0.8, 1.3) ) meta <- list( pays = "Republique Centrafricaine", titre = "Enquete sur les conditions de vie des menages", annee = 2026L, source = "ICASEES", auteur = "Direction des Statistiques" ) generer_rapport_enquete(donnees, meta, sortie = "html") ## End(Not run)
Genere un rapport de suivi des Objectifs de Developpement Durable au format standard PARIS21/Nations Unies.
generer_rapport_odd( resultats_odd, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), cibles = NULL, sortie = c("html", "pdf", "word"), chemin_sortie = tempdir(), ouvrir = FALSE )generer_rapport_odd( resultats_odd, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), cibles = NULL, sortie = c("html", "pdf", "word"), chemin_sortie = tempdir(), ouvrir = FALSE )
resultats_odd |
list – Liste d'objets |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee de reference. Defaut : annee courante |
cibles |
list ou NULL – Cibles nationales par code ODD. Defaut : NULL |
sortie |
character – Format : |
chemin_sortie |
character – Repertoire. Defaut : |
ouvrir |
logical – Ouvrir apres generation. Defaut : FALSE |
Chemin du fichier genere (invisible)
## Not run: set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, 1/150000), rexp(30, 1/500000)), electricite = sample(c(0L,1L), 100, TRUE, c(0.45, 0.55)), internet = sample(c(0L,1L), 100, TRUE, c(0.72, 0.28)) ) r1 <- odd_indicateur(menages, "1.2.1", var_depense = "depense_pc", seuil = 200000) r2 <- odd_indicateur(menages, "7.1.1", var_indicateur = "electricite") generer_rapport_odd( list(r1, r2), pays = "Republique Centrafricaine", annee = 2026L, cibles = list("1.2.1" = 50, "7.1.1" = 80) ) ## End(Not run)## Not run: set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, 1/150000), rexp(30, 1/500000)), electricite = sample(c(0L,1L), 100, TRUE, c(0.45, 0.55)), internet = sample(c(0L,1L), 100, TRUE, c(0.72, 0.28)) ) r1 <- odd_indicateur(menages, "1.2.1", var_depense = "depense_pc", seuil = 200000) r2 <- odd_indicateur(menages, "7.1.1", var_indicateur = "electricite") generer_rapport_odd( list(r1, r2), pays = "Republique Centrafricaine", annee = 2026L, cibles = list("1.2.1" = 50, "7.1.1" = 80) ) ## End(Not run)
Génère un graphique en barres avec intervalles de confiance optionnels, adapté aux résultats d'enquêtes pondérées.
graphique_barres( data, var_x, var_y, var_groupe = NULL, var_ic_bas = NULL, var_ic_haut = NULL, position = c("dodge", "stack"), titre = NULL, label_x = NULL, label_y = NULL, pourcentage = FALSE, trier = FALSE )graphique_barres( data, var_x, var_y, var_groupe = NULL, var_ic_bas = NULL, var_ic_haut = NULL, position = c("dodge", "stack"), titre = NULL, label_x = NULL, label_y = NULL, pourcentage = FALSE, trier = FALSE )
data |
data.frame, tibble ou résultat de |
var_x |
character — Variable en abscisse (catégories) |
var_y |
character — Variable en ordonnée (valeurs) |
var_groupe |
character ou NULL — Variable de regroupement (barres groupées). Défaut : NULL. |
var_ic_bas |
character ou NULL — Variable borne inférieure IC. Défaut : NULL. |
var_ic_haut |
character ou NULL — Variable borne supérieure IC. Défaut : NULL. |
position |
character — |
titre |
character ou NULL — Titre. Défaut : NULL. |
label_x |
character ou NULL — Label axe X. Défaut : NULL. |
label_y |
character ou NULL — Label axe Y. Défaut : NULL. |
pourcentage |
logical — Formater l'axe Y en pourcentage. Défaut : FALSE. |
trier |
logical — Trier les barres par valeur décroissante. Défaut : FALSE. |
Un objet ggplot.
if (requireNamespace("ggplot2", quietly = TRUE)) { df <- data.frame(region=c("Nord","Sud","Est","Ouest"), valeur=c(35.2,28.7,41.1,22.5)) graphique_barres(df, var_x="region", var_y="valeur", titre="Indicateur") }if (requireNamespace("ggplot2", quietly = TRUE)) { df <- data.frame(region=c("Nord","Sud","Est","Ouest"), valeur=c(35.2,28.7,41.1,22.5)) graphique_barres(df, var_x="region", var_y="valeur", titre="Indicateur") }
Visualise les indices FGT nationaux et/ou par sous-groupe.
graphique_fgt( fgt_obj, type = c("barres", "indices"), variable = NULL, couleur = "#1B4965" )graphique_fgt( fgt_obj, type = c("barres", "indices"), variable = NULL, couleur = "#1B4965" )
fgt_obj |
objet |
type |
character – |
variable |
character ou NULL – Variable de sous-groupe a representer |
couleur |
character – Couleur principale. Defaut : |
Objet ggplot2
## Not run: set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, 1/150000), rexp(30, 1/400000)), poids = runif(100, 0.8, 1.2), milieu = sample(c("urbain", "rural"), 100, TRUE, c(0.4, 0.6)) ) fgt <- calcul_fgt(menages, "depense_pc", 220000, poids = "poids", sous_groupes = "milieu") graphique_fgt(fgt, type = "barres", variable = "milieu") ## End(Not run)## Not run: set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, 1/150000), rexp(30, 1/400000)), poids = runif(100, 0.8, 1.2), milieu = sample(c("urbain", "rural"), 100, TRUE, c(0.4, 0.6)) ) fgt <- calcul_fgt(menages, "depense_pc", 220000, poids = "poids", sous_groupes = "milieu") graphique_fgt(fgt, type = "barres", variable = "milieu") ## End(Not run)
Produit un graphique en barres des contributions de chaque indicateur et chaque dimension a l'IPM. Retourne un objet ggplot2.
graphique_ipm( res_ipm, type = c("indicateurs", "dimensions"), titre = NULL, source = NULL )graphique_ipm( res_ipm, type = c("indicateurs", "dimensions"), titre = NULL, source = NULL )
res_ipm |
saf_ipm – Resultat de |
type |
character – |
titre |
character ou NULL – Titre du graphique. Defaut : NULL |
source |
character ou NULL – Note de source. Defaut : NULL |
Un objet ggplot2
set.seed(42) n <- 200 menages <- data.frame( nutrition = rbinom(n,1,0.35), electricite = rbinom(n,1,0.60), eau = rbinom(n,1,0.40), scolarisation = rbinom(n,1,0.30), poids = runif(n,0.8,1.3) ) res <- calcul_ipm(menages, var_nutrition="nutrition", var_electricite="electricite", var_eau="eau", var_scolarisation="scolarisation", poids="poids") graphique_ipm(res)set.seed(42) n <- 200 menages <- data.frame( nutrition = rbinom(n,1,0.35), electricite = rbinom(n,1,0.60), eau = rbinom(n,1,0.40), scolarisation = rbinom(n,1,0.30), poids = runif(n,0.8,1.3) ) res <- calcul_ipm(menages, var_nutrition="nutrition", var_electricite="electricite", var_eau="eau", var_scolarisation="scolarisation", poids="poids") graphique_ipm(res)
Génère un graphique de tendance pour un ou plusieurs indicateurs sur une période temporelle. Adapté au suivi des indicateurs ODD et des indicateurs macroéconomiques.
graphique_tendance( data, var_temps, var_valeur = NULL, var_indicateur = NULL, vars_indicateurs = NULL, titre = NULL, label_y = "Valeur", afficher_points = TRUE, afficher_valeurs = FALSE, lisser = FALSE )graphique_tendance( data, var_temps, var_valeur = NULL, var_indicateur = NULL, vars_indicateurs = NULL, titre = NULL, label_y = "Valeur", afficher_points = TRUE, afficher_valeurs = FALSE, lisser = FALSE )
data |
data.frame ou tibble — Données en format long ou large |
var_temps |
character — Variable temporelle (année, trimestre...) |
var_valeur |
character — Variable de valeur (format long) ou NULL si format large. Défaut : NULL. |
var_indicateur |
character ou NULL — Variable d'indicateur (format long). Défaut : NULL. |
vars_indicateurs |
character ou NULL — Vecteur de colonnes à tracer (format large). Défaut : NULL. |
titre |
character ou NULL — Titre. Défaut : NULL. |
label_y |
character — Label axe Y. Défaut : "Valeur". |
afficher_points |
logical — Afficher les points. Défaut : TRUE. |
afficher_valeurs |
logical — Annoter les valeurs. Défaut : FALSE. |
lisser |
logical — Ajouter une courbe lissée (loess). Défaut : FALSE. |
Un objet ggplot.
if (requireNamespace("ggplot2", quietly = TRUE)) { df <- data.frame(annee=2015:2023, pib=c(45,48,51,49,53,55,52,58,61)) graphique_tendance(df, var_temps="annee", vars_indicateurs="pib", titre="PIB") }if (requireNamespace("ggplot2", quietly = TRUE)) { df <- data.frame(annee=2015:2023, pib=c(45,48,51,49,53,55,52,58,61)) graphique_tendance(df, var_temps="annee", vars_indicateurs="pib", titre="PIB") }
Prevalence du handicap par type (visuel, auditif, moteur, cognitif) selon la methodologie Washington Group / recensement.
handicap_prevalence(donnees, vars_handicap, poids = NULL, sous_groupes = NULL)handicap_prevalence(donnees, vars_handicap, poids = NULL, sous_groupes = NULL)
donnees |
data.frame – Donnees individuelles |
vars_handicap |
named character – Vecteur nomme : type de handicap -> variable 0/1. Ex: c(Visuel="hand_vis", Moteur="hand_mot") |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec prevalence par type de handicap
set.seed(42) n <- 500 individus <- data.frame( hand_vis = rbinom(n, 1, 0.04), hand_aud = rbinom(n, 1, 0.03), hand_mot = rbinom(n, 1, 0.05), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) handicap_prevalence(individus, vars_handicap = c(Visuel="hand_vis", Auditif="hand_aud", Moteur="hand_mot"), poids = "poids")set.seed(42) n <- 500 individus <- data.frame( hand_vis = rbinom(n, 1, 0.04), hand_aud = rbinom(n, 1, 0.03), hand_mot = rbinom(n, 1, 0.05), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) handicap_prevalence(individus, vars_handicap = c(Visuel="hand_vis", Auditif="hand_aud", Moteur="hand_mot"), poids = "poids")
Standardise les noms de régions géographiques selon un référentiel national ou africain. Corrige les variantes orthographiques, les abréviations et les noms en langues locales.
harmoniser_regions( data, var_region, pays = NULL, table_correspondance = NULL, var_sortie = "region_std", signaler_non_trouves = TRUE )harmoniser_regions( data, var_region, pays = NULL, table_correspondance = NULL, var_sortie = "region_std", signaler_non_trouves = TRUE )
data |
data.frame ou tibble — Données à harmoniser |
var_region |
character — Nom de la variable contenant les régions |
pays |
character ou NULL — Code pays ISO2 pour utiliser le référentiel
intégré (ex: "BJ", "BF", "SN", "CI", "ML", "NE", "TG", "CM", "GN").
Si NULL, utilise |
table_correspondance |
data.frame ou NULL — Table de correspondance
avec colonnes |
var_sortie |
character — Nom de la nouvelle colonne standardisée. Défaut : "region_std". |
signaler_non_trouves |
logical — Afficher les valeurs non reconnues. Défaut : TRUE. |
Le tibble avec une colonne var_sortie ajoutée contenant
les régions standardisées.
## Not run: donnees <- data.frame(region = c("Littoral","Atlantique","Borgou")) harmoniser_regions(donnees, var_region = "region", pays = "BJ") ## End(Not run)## Not run: donnees <- data.frame(region = c("Littoral","Atlantique","Borgou")) harmoniser_regions(donnees, var_region = "region", pays = "BJ") ## End(Not run)
Normalise automatiquement les noms de zones : suppression des accents, standardisation de la casse, suppression des caracteres speciaux. Permet de faire des jointures geographiques robustes meme quand les orthographes different entre sources.
harmoniser_zones( donnees, var_zone, reference = NULL, var_ref = "nom_local", seuil_similarite = 0.85 )harmoniser_zones( donnees, var_zone, reference = NULL, var_ref = "nom_local", seuil_similarite = 0.85 )
donnees |
data.frame – Donnees a harmoniser |
var_zone |
character – Variable contenant les noms de zones |
reference |
saf_concordance ou data.frame – Table de reference. Si NULL, harmonise seulement les noms (sans correspondance). Defaut : NULL |
var_ref |
character – Variable de la reference correspondant. Defaut : "nom_local" |
seuil_similarite |
numeric – Seuil de score Jaro-Winkler pour l'appariement automatique (0-1). Defaut : 0.85 |
Un data.frame avec colonne supplementaire de nom harmonise
donnees_enquete <- data.frame( region = c("Bangui","BANGUI","Ombella Mpoko","Bamingui Bangoran"), valeur = c(120, 85, 200, 150), stringsAsFactors = FALSE ) harmoniser_zones(donnees_enquete, "region")donnees_enquete <- data.frame( region = c("Bangui","BANGUI","Ombella Mpoko","Bamingui Bangoran"), valeur = c(120, 85, 200, 150), stringsAsFactors = FALSE ) harmoniser_zones(donnees_enquete, "region")
Lit les fichiers de données produits par CSPro (format .dat avec dictionnaire .dcf associé). Retourne un tibble avec les labels issus du dictionnaire CSPro. Fonction prioritaire pour les RGPH africains. Compatible avec CSPro 4.x à 8.x.
import_cspro( fichier_dat, fichier_dcf = NULL, niveau = NULL, encoding = "UTF-8", max_lignes = NULL, verbose = TRUE )import_cspro( fichier_dat, fichier_dcf = NULL, niveau = NULL, encoding = "UTF-8", max_lignes = NULL, verbose = TRUE )
fichier_dat |
character — Chemin vers le fichier de données (.dat) |
fichier_dcf |
character ou NULL — Chemin vers le dictionnaire (.dcf). Si NULL, recherche automatiquement un .dcf de même nom dans le même répertoire. Défaut : NULL. |
niveau |
character ou NULL — Niveau d'enregistrement à lire (ex: "MENAGE", "INDIVIDU", "LOGEMENT"). Si NULL, lit le premier niveau. Défaut : NULL. |
encoding |
character — Encodage du fichier source. Défaut : "UTF-8". |
max_lignes |
integer ou NULL — Nombre maximum de lignes à lire (utile pour les tests sur grands fichiers RGPH). Défaut : NULL (tout lire). |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble avec une colonne par variable CSPro. Les labels de valeurs
sont stockés dans les attributs du tibble (attr(., "labels_cspro")).
## Not run: # Import du niveau ménage d'un RGPH menages <- import_cspro( fichier_dat = "data/rgph_2024.dat", fichier_dcf = "data/rgph_2024.dcf", niveau = "MENAGE" ) # Test sur les 1000 premières lignes test <- import_cspro("data/rgph_2024.dat", max_lignes = 1000) ## End(Not run)## Not run: # Import du niveau ménage d'un RGPH menages <- import_cspro( fichier_dat = "data/rgph_2024.dat", fichier_dcf = "data/rgph_2024.dcf", niveau = "MENAGE" ) # Test sur les 1000 premières lignes test <- import_cspro("data/rgph_2024.dat", max_lignes = 1000) ## End(Not run)
Importe un fichier CSV avec détection automatique de l'encodage, du séparateur et du séparateur décimal. Gère les formats courants des INS africains (séparateurs point-virgule, virgule, tabulation).
import_csv( chemin, separateur = NULL, encodage = "UTF-8", decimal = ".", na = c("", "NA", "N/A", "n/a", ".", " "), verbose = TRUE )import_csv( chemin, separateur = NULL, encodage = "UTF-8", decimal = ".", na = c("", "NA", "N/A", "n/a", ".", " "), verbose = TRUE )
chemin |
character — Chemin vers le fichier CSV |
separateur |
character ou NULL — Séparateur de colonnes. Si NULL, détection automatique. Défaut : NULL. |
encodage |
character — Encodage du fichier. Défaut : "UTF-8" (essaie aussi "latin1" si UTF-8 échoue). |
decimal |
character — Séparateur décimal ("." ou ","). Défaut : ".". |
na |
character — Valeurs à interpréter comme NA. Défaut : c("", "NA", "N/A", "n/a", ".", " "). |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble.
## Not run: donnees <- import_csv("data/prix_marches.csv") donnees_fr <- import_csv("data/donnees_fr.csv", decimal = ",") ## End(Not run)## Not run: donnees <- import_csv("data/prix_marches.csv") donnees_fr <- import_csv("data/donnees_fr.csv", decimal = ",") ## End(Not run)
Importe un fichier Excel (.xlsx, .xls) avec détection automatique des feuilles, gestion des en-têtes multiples et conversion intelligente des types de colonnes. Optimisé pour les formats courants des INS africains.
import_excel( chemin, feuille = 1, skip = 0, col_types = NULL, na = c("", "NA", "N/A", "n/a", ".", " "), verbose = TRUE )import_excel( chemin, feuille = 1, skip = 0, col_types = NULL, na = c("", "NA", "N/A", "n/a", ".", " "), verbose = TRUE )
chemin |
character — Chemin vers le fichier Excel (.xlsx ou .xls) |
feuille |
character ou integer ou NULL — Nom ou numéro de la feuille à importer. Si NULL, importe toutes les feuilles sous forme de liste. Défaut : 1 (première feuille). |
skip |
integer — Nombre de lignes à ignorer avant l'en-tête. Défaut : 0. |
col_types |
character ou NULL — Types des colonnes (voir readxl). Si NULL, détection automatique. Défaut : NULL. |
na |
character — Valeurs à interpréter comme NA. Défaut : c("", "NA", "N/A", "n/a", ".", " "). |
verbose |
logical — Afficher les messages de progression. Défaut : TRUE. |
Un tibble si une seule feuille, une liste de tibbles si
feuille = NULL.
import_csv, valider_dictionnaire
## Not run: # Import de la première feuille donnees <- import_excel("data/enquete_menage.xlsx") # Import d'une feuille spécifique menages <- import_excel("data/emop_2024.xlsx", feuille = "Menages") # Import de toutes les feuilles toutes <- import_excel("data/rapport.xlsx", feuille = NULL) ## End(Not run)## Not run: # Import de la première feuille donnees <- import_excel("data/enquete_menage.xlsx") # Import d'une feuille spécifique menages <- import_excel("data/emop_2024.xlsx", feuille = "Menages") # Import de toutes les feuilles toutes <- import_excel("data/rapport.xlsx", feuille = NULL) ## End(Not run)
Importe un formulaire KoboToolbox via fichier local (XLS/JSON) ou via l'API REST KoboToolbox. Retourne un tibble annoté avec les métadonnées du formulaire. Compatible avec KoboToolbox et KoBoCAT.
import_kobo( source, uid = NULL, token = Sys.getenv("KOBO_TOKEN"), format = c("xls", "json"), langue = "French (fr)", verbose = TRUE )import_kobo( source, uid = NULL, token = Sys.getenv("KOBO_TOKEN"), format = c("xls", "json"), langue = "French (fr)", verbose = TRUE )
source |
character — Chemin vers un fichier XLS/JSON local, ou URL de base de l'API (ex: "https://kf.kobotoolbox.org"). |
uid |
character ou NULL — Identifiant unique du formulaire (requis si source = URL API). Défaut : NULL. |
token |
character — Jeton d'authentification API. Peut aussi être
défini via la variable d'environnement |
format |
character — Format du fichier local : "xls" ou "json". Ignoré si source est une URL. Défaut : "xls". |
langue |
character — Code langue pour les labels multilingues (ex: "French (fr)", "English (en)"). Défaut : "French (fr)". |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble avec les colonnes du formulaire. L'attribut
attr(., "metadonnees_kobo") contient le dictionnaire des variables.
## Not run: # Import depuis fichier XLS local donnees <- import_kobo(source = "data/enquete_2024.xls") # Import depuis API KoboToolbox Sys.setenv(KOBO_TOKEN = "mon_token_secret") donnees <- import_kobo( source = "https://kf.kobotoolbox.org", uid = "aXmNk7pQrS", langue = "French (fr)" ) ## End(Not run)## Not run: # Import depuis fichier XLS local donnees <- import_kobo(source = "data/enquete_2024.xls") # Import depuis API KoboToolbox Sys.setenv(KOBO_TOKEN = "mon_token_secret") donnees <- import_kobo( source = "https://kf.kobotoolbox.org", uid = "aXmNk7pQrS", langue = "French (fr)" ) ## End(Not run)
Importe les soumissions d'un formulaire ODK Central via l'API REST ou depuis un fichier d'export local (ZIP ou CSV). Compatible avec ODK Central 1.x et 2.x.
import_odk( source, projet_id = NULL, formulaire_id = NULL, email = Sys.getenv("ODK_EMAIL"), mot_de_passe = Sys.getenv("ODK_PASSWORD"), inclure_metadonnees = FALSE, verbose = TRUE )import_odk( source, projet_id = NULL, formulaire_id = NULL, email = Sys.getenv("ODK_EMAIL"), mot_de_passe = Sys.getenv("ODK_PASSWORD"), inclure_metadonnees = FALSE, verbose = TRUE )
source |
character — URL du serveur ODK Central (ex: "https://odk.monins.org") ou chemin vers un fichier d'export .zip/.csv. |
projet_id |
integer ou NULL — ID du projet ODK. Requis si source est une URL. Défaut : NULL. |
formulaire_id |
character ou NULL — ID du formulaire ODK. Requis si source est une URL. Défaut : NULL. |
email |
character ou NULL — Email de connexion ODK Central.
Peut aussi être défini via |
mot_de_passe |
character — Mot de passe ODK Central.
Peut aussi être défini via |
inclure_metadonnees |
logical — Inclure les colonnes de métadonnées ODK (timestamps, deviceid, etc.). Défaut : FALSE. |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble contenant les soumissions du formulaire.
## Not run: # Import depuis export ZIP local donnees <- import_odk(source = "data/odk_export_2024.zip") # Import depuis API ODK Central Sys.setenv(ODK_EMAIL = "[email protected]", ODK_PASSWORD = "motdepasse") donnees <- import_odk( source = "https://odk.monins.org", projet_id = 1, formulaire_id = "enquete_menage_2024" ) ## End(Not run)## Not run: # Import depuis export ZIP local donnees <- import_odk(source = "data/odk_export_2024.zip") # Import depuis API ODK Central Sys.setenv(ODK_EMAIL = "[email protected]", ODK_PASSWORD = "motdepasse") donnees <- import_odk( source = "https://odk.monins.org", projet_id = 1, formulaire_id = "enquete_menage_2024" ) ## End(Not run)
Importe un fichier SAS (.sas7bdat) ou un fichier de formats SAS (.sas7bcat) avec préservation des labels.
import_sas(chemin, chemin_formats = NULL, encoding = "UTF-8", verbose = TRUE)import_sas(chemin, chemin_formats = NULL, encoding = "UTF-8", verbose = TRUE)
chemin |
character — Chemin vers le fichier .sas7bdat |
chemin_formats |
character ou NULL — Chemin vers le fichier de formats .sas7bcat (optionnel). Défaut : NULL. |
encoding |
character — Encodage. Défaut : "UTF-8". |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble.
## Not run: donnees <- import_sas("data/enquete_emploi.sas7bdat") ## End(Not run)## Not run: donnees <- import_sas("data/enquete_emploi.sas7bdat") ## End(Not run)
Importe un fichier SPSS (.sav ou .zsav) avec préservation des labels de variables et de valeurs SPSS.
import_spss( chemin, garder_labels = TRUE, convertir_labels = FALSE, encoding = NULL, verbose = TRUE )import_spss( chemin, garder_labels = TRUE, convertir_labels = FALSE, encoding = NULL, verbose = TRUE )
chemin |
character — Chemin vers le fichier .sav ou .zsav |
garder_labels |
logical — Conserver les labels. Défaut : TRUE. |
convertir_labels |
logical — Convertir en facteurs. Défaut : FALSE. |
encoding |
character ou NULL — Encodage. Si NULL, détection auto. Défaut : NULL. |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble.
## Not run: mics <- import_spss("data/mics6_enfants.sav") ## End(Not run)## Not run: mics <- import_spss("data/mics6_enfants.sav") ## End(Not run)
Importe un fichier Stata (.dta) avec préservation des labels de variables et de valeurs. Compatible avec toutes les versions Stata (Stata 8 à Stata 18).
import_stata( chemin, encoding = "UTF-8", garder_labels = TRUE, convertir_labels = FALSE, verbose = TRUE )import_stata( chemin, encoding = "UTF-8", garder_labels = TRUE, convertir_labels = FALSE, verbose = TRUE )
chemin |
character — Chemin vers le fichier .dta |
encoding |
character — Encodage pour les labels. Défaut : "UTF-8". |
garder_labels |
logical — Conserver les labels comme attributs. Défaut : TRUE. |
convertir_labels |
logical — Convertir les variables labellisées en facteurs. Défaut : FALSE. |
verbose |
logical — Afficher les messages. Défaut : TRUE. |
Un tibble avec attributs de labels si garder_labels = TRUE.
## Not run: eds <- import_stata("data/eds_2021.dta") eds_facteurs <- import_stata("data/eds_2021.dta", convertir_labels = TRUE) ## End(Not run)## Not run: eds <- import_stata("data/eds_2021.dta") eds_facteurs <- import_stata("data/eds_2021.dta", convertir_labels = TRUE) ## End(Not run)
Impute les valeurs manquantes d'un dataset selon la méthode spécifiée. Supporte l'imputation simple (statistiques descriptives), hot-deck et par régression. Produit un rapport de traçabilité.
imputer_valeurs( data, vars = NULL, methode = c("mediane", "moyenne", "mode", "hot_deck", "regression"), vars_auxiliaires = NULL, graine = 42L, rapport = TRUE )imputer_valeurs( data, vars = NULL, methode = c("mediane", "moyenne", "mode", "hot_deck", "regression"), vars_auxiliaires = NULL, graine = 42L, rapport = TRUE )
data |
data.frame ou tibble — Données avec valeurs manquantes |
vars |
character ou NULL — Variables à imputer. Si NULL, toutes les variables avec valeurs manquantes. Défaut : NULL. |
methode |
character — Méthode d'imputation :
|
vars_auxiliaires |
character ou NULL — Variables auxiliaires pour l'imputation par régression ou hot-deck. Défaut : NULL. |
graine |
integer — Graine aléatoire pour la reproductibilité. Défaut : 42. |
rapport |
logical — Retourner un rapport d'imputation. Défaut : TRUE. |
Si rapport = FALSE : tibble imputé.
Si rapport = TRUE : liste avec $donnees et $rapport.
## Not run: donnees <- data.frame(revenu_mensuel=c(150000,NA,200000), age=c(25,34,NA)) imputer_valeurs(donnees, vars=c("revenu_mensuel","age"), methode="mediane") ## End(Not run)## Not run: donnees <- data.frame(revenu_mensuel=c(150000,NA,200000), age=c(25,34,NA)) imputer_valeurs(donnees, vars=c("revenu_mensuel","age"), methode="mediane") ## End(Not run)
L'indice d'Atkinson est une mesure d'inegalite parametrique dont le parametre epsilon reflete l aversion a l'inegalite de la societe. Epsilon = 0 : indifference ; Epsilon = 1 : forte aversion.
indice_atkinson(donnees, var_revenu, poids = NULL, epsilon = 1) atkinson(donnees, var_revenu, poids = NULL, epsilon = 1)indice_atkinson(donnees, var_revenu, poids = NULL, epsilon = 1) atkinson(donnees, var_revenu, poids = NULL, epsilon = 1)
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
epsilon |
numeric – Parametre d'aversion a l'inegalite (>0). Defaut : 1.0 |
Un scalaire numerique (indice d'Atkinson)
set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), poids = runif(300, 0.8, 1.3) ) indice_atkinson(menages, "depense", poids = "poids", epsilon = 1)set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), poids = runif(300, 0.8, 1.3) ) indice_atkinson(menages, "depense", poids = "poids", epsilon = 1)
L'indice de Palma est le rapport entre la part de revenu des 10% les plus riches et celle des 40% les plus pauvres. Il est plus sensible aux extremes que le coefficient de Gini.
indice_palma(donnees, var_revenu, poids = NULL) palma(donnees, var_revenu, poids = NULL)indice_palma(donnees, var_revenu, poids = NULL) palma(donnees, var_revenu, poids = NULL)
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
Un scalaire numerique (indice de Palma)
set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), poids = runif(300, 0.8, 1.3) ) indice_palma(menages, "depense", poids = "poids")set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), poids = runif(300, 0.8, 1.3) ) indice_palma(menages, "depense", poids = "poids")
Prevalence de l'insuffisance ponderale : poids-pour-age < -2 ecarts-types chez les enfants de moins de 5 ans.
insuffisance_ponderale( donnees, var_poids_age_z, poids = NULL, sous_groupes = NULL, seuil = -2 )insuffisance_ponderale( donnees, var_poids_age_z, poids = NULL, sous_groupes = NULL, seuil = -2 )
donnees |
data.frame – Donnees enfants < 5 ans |
var_poids_age_z |
character – Score Z poids-pour-age (WAZ) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
seuil |
numeric – Seuil score Z. Defaut : -2 |
Un objet de classe saf_anthropo
set.seed(42) n <- 400 enfants <- data.frame( waz = rnorm(n, -1.0, 1.2), poids = runif(n, 0.8, 1.3) ) insuffisance_ponderale(enfants, var_poids_age_z = "waz", poids = "poids")set.seed(42) n <- 400 enfants <- data.frame( waz = rnorm(n, -1.0, 1.2), poids = runif(n, 0.8, 1.3) ) insuffisance_ponderale(enfants, var_poids_age_z = "waz", poids = "poids")
Lance une application Shiny pre-configuree presentant tous les indicateurs de bien-etre calcules depuis les donnees fournies. Zero code Shiny requis. Fonctionne entierement hors ligne. Compatible EHCVM, DHS, MICS, EFT.
lancer_dashboard( donnees = NULL, var_poids = NULL, var_region = NULL, var_milieu = NULL, var_annee = NULL, pays = "Pays", titre = NULL, sous_titre = NULL, port = 3838L, lancer = TRUE, export_html = NULL )lancer_dashboard( donnees = NULL, var_poids = NULL, var_region = NULL, var_milieu = NULL, var_annee = NULL, pays = "Pays", titre = NULL, sous_titre = NULL, port = 3838L, lancer = TRUE, export_html = NULL )
donnees |
data.frame ou NULL – Donnees menages. Si NULL, utilise des donnees de demonstration. Defaut : NULL |
var_poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
var_region |
character ou NULL – Variable region/prefecture. Defaut : NULL |
var_milieu |
character ou NULL – Variable milieu (urbain/rural). Defaut : NULL |
var_annee |
character ou NULL – Variable annee. Defaut : NULL |
pays |
character – Nom du pays pour les titres. Defaut : "Pays" |
titre |
character ou NULL – Titre principal du dashboard. Defaut : "Tableau de bord - NOM_DU_PAYS" (nom du pays en parametre) |
sous_titre |
character ou NULL – Sous-titre du dashboard. Defaut : "Indicateurs de bien-etre - NOM_DU_PAYS - statAfrikR v0.2.0" |
port |
integer – Port Shiny. Defaut : 3838L |
lancer |
logical – Lancer l'app (TRUE) ou retourner l'objet shinyApp (FALSE). Defaut : TRUE |
export_html |
character ou NULL – Chemin pour exporter un rapport HTML statique sans lancer Shiny. Defaut : NULL |
Invisible : objet shinyApp si lancer=FALSE, NULL sinon
## Not run: lancer_dashboard() lancer_dashboard( donnees = mon_enquete, var_poids = "poids_sondage", var_region = "prefecture", pays = "Centrafrique" ) ## End(Not run)## Not run: lancer_dashboard() lancer_dashboard( donnees = mon_enquete, var_poids = "poids_sondage", var_region = "prefecture", pays = "Centrafrique" ) ## End(Not run)
Retourne la liste des templates R Markdown disponibles dans statAfrikR avec leur description et parametres.
lister_templates()lister_templates()
Un tibble avec : nom, description, parametres, format_sortie
lister_templates()lister_templates()
Proportion de femmes/hommes maries avant 18 ans (ODD 5.3.1) avec desagregation et analyse des tendances par cohorte d'age.
mariage_precoce( donnees, var_marie_avant_18, var_cohorte = NULL, poids = NULL, sous_groupes = NULL )mariage_precoce( donnees, var_marie_avant_18, var_cohorte = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees femmes (15-49 ans) |
var_marie_avant_18 |
character – Variable 0/1 : marie(e) avant 18 ans |
var_cohorte |
character ou NULL – Variable de cohorte ou groupe d'age pour analyser les tendances. Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_genre
set.seed(42) n <- 500 femmes <- data.frame( marie_18 = rbinom(n, 1, 0.42), cohorte = sample(c("15-19","20-24","25-29","30-34","35-49"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) mariage_precoce(femmes, "marie_18", var_cohorte = "cohorte", poids = "poids", sous_groupes = "milieu")set.seed(42) n <- 500 femmes <- data.frame( marie_18 = rbinom(n, 1, 0.42), cohorte = sample(c("15-19","20-24","25-29","30-34","35-49"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) mariage_precoce(femmes, "marie_18", var_cohorte = "cohorte", poids = "poids", sous_groupes = "milieu")
Convertit les codes ou noms d'une nomenclature vers une autre en utilisant une table de concordance. Gere les fusions et scissions de zones administratives dans le temps.
migrer_nomenclature( donnees, var_zone_source, concordance, var_source = "nom_local", var_cible = "code_iso", var_resultat = "zone_harmonisee", conserver_non_apparies = TRUE )migrer_nomenclature( donnees, var_zone_source, concordance, var_source = "nom_local", var_cible = "code_iso", var_resultat = "zone_harmonisee", conserver_non_apparies = TRUE )
donnees |
data.frame – Donnees a convertir |
var_zone_source |
character – Variable zone source |
concordance |
saf_concordance ou data.frame – Table de concordance |
var_source |
character – Variable source dans la concordance. Defaut : "nom_local" |
var_cible |
character – Variable cible dans la concordance. Defaut : "code_iso" |
var_resultat |
character – Nom de la nouvelle variable. Defaut : "zone_harmonisee" |
conserver_non_apparies |
logical – Conserver les zones non appariees (NA dans var_cible). Defaut : TRUE |
Un data.frame avec la nouvelle variable de zone
concordance_df <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Bamingui-Bangoran"), code_iso = c("CF-BGF","CF-MP","CF-BB"), code_ins = c("01","02","03"), stringsAsFactors = FALSE ) concordance <- table_concordance(concordance_df, "nom_local", var_code_iso="code_iso", var_code_ins="code_ins") donnees_enquete <- data.frame( zone = c("Bangui","Ombella-M'Poko","Zone inconnue"), valeur = c(100, 200, 150), stringsAsFactors = FALSE ) migrer_nomenclature(donnees_enquete, "zone", concordance, var_source="nom_local", var_cible="code_iso")concordance_df <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Bamingui-Bangoran"), code_iso = c("CF-BGF","CF-MP","CF-BB"), code_ins = c("01","02","03"), stringsAsFactors = FALSE ) concordance <- table_concordance(concordance_df, "nom_local", var_code_iso="code_iso", var_code_ins="code_ins") donnees_enquete <- data.frame( zone = c("Bangui","Ombella-M'Poko","Zone inconnue"), valeur = c(100, 200, 150), stringsAsFactors = FALSE ) migrer_nomenclature(donnees_enquete, "zone", concordance, var_source="nom_local", var_cible="code_iso")
Calcule le taux de mortalite infanto-juvenile (U5MR) en pour 1 000 naissances vivantes. ODD 3.2.1.
mortalite_5ans( donnees, var_naissances_vivantes, var_deces_enfants, poids = NULL, sous_groupes = NULL )mortalite_5ans( donnees, var_naissances_vivantes, var_deces_enfants, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees femmes en age de procrer (15-49 ans) ou historique des naissances |
var_naissances_vivantes |
character – Nombre total de naissances vivantes par femme |
var_deces_enfants |
character – Nombre de deces d'enfants < 5 ans par femme |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_mortalite
set.seed(42) n <- 600 femmes <- data.frame( naissances_vivantes = rpois(n, 3.5), deces_enfants = rbinom(n, 4, 0.08), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) mortalite_5ans(femmes, var_naissances_vivantes = "naissances_vivantes", var_deces_enfants = "deces_enfants", poids = "poids")set.seed(42) n <- 600 femmes <- data.frame( naissances_vivantes = rpois(n, 3.5), deces_enfants = rbinom(n, 4, 0.08), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) mortalite_5ans(femmes, var_naissances_vivantes = "naissances_vivantes", var_deces_enfants = "deces_enfants", poids = "poids")
Mesure l'attraction sur les 10 chiffres terminaux (0-9). L'indice de Myers varie de 0 (aucune attraction) a 90 (attraction maximale). Un indice < 10 indique une bonne qualite des donnees d'age.
myers(donnees, var_age, age_min = 10L, age_max = 89L, poids = NULL)myers(donnees, var_age, age_min = 10L, age_max = 89L, poids = NULL)
donnees |
data.frame – Donnees individuelles |
var_age |
character – Variable age en annees revolues |
age_min |
integer – Age minimum. Defaut : 10L |
age_max |
integer – Age maximum. Defaut : 89L |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
Un objet de classe saf_qualite_demo
set.seed(42) n <- 1000 ages_base <- sample(10:89, n, TRUE) # Attraction sur les ages ronds ages <- ifelse(runif(n) < 0.20, ages_base - (ages_base %% 10), ages_base) individus <- data.frame(age = pmax(10, pmin(89, ages))) myers(individus, "age")set.seed(42) n <- 1000 ages_base <- sample(10:89, n, TRUE) # Attraction sur les ages ronds ages <- ifelse(runif(n) < 0.20, ages_base - (ages_base %% 10), ages_base) individus <- data.frame(age = pmax(10, pmin(89, ages))) myers(individus, "age")
Normalise les chaînes de caractères : suppression des espaces superflus, normalisation de la casse, gestion des caractères spéciaux, correction des encodages. Préserve les caractères accentués africains et francophones.
nettoyer_libelles( data, vars = NULL, casse = c("titre", "majuscule", "minuscule", "aucune"), supprimer_espaces = TRUE, supprimer_ponctuation = FALSE, encodage = "UTF-8" )nettoyer_libelles( data, vars = NULL, casse = c("titre", "majuscule", "minuscule", "aucune"), supprimer_espaces = TRUE, supprimer_ponctuation = FALSE, encodage = "UTF-8" )
data |
data.frame ou tibble — Données à nettoyer |
vars |
character ou NULL — Variables à nettoyer. Si NULL, toutes les variables de type character. Défaut : NULL. |
casse |
character — Normalisation de la casse :
|
supprimer_espaces |
logical — Supprimer les espaces multiples et les espaces en début/fin. Défaut : TRUE. |
supprimer_ponctuation |
logical — Supprimer la ponctuation superflue. Défaut : FALSE. |
encodage |
character — Encodage cible. Défaut : "UTF-8". |
Un tibble avec les variables textuelles nettoyées.
## Not run: donnees <- data.frame(region = c(" nord ","SUD"), commune = c("Cotonou "," parakou")) nettoyer_libelles(donnees, vars = c("region", "commune")) ## End(Not run)## Not run: donnees <- data.frame(region = c(" nord ","SUD"), commune = c("Cotonou "," parakou")) nettoyer_libelles(donnees, vars = c("region", "commune")) ## End(Not run)
Retourne le catalogue des indicateurs ODD implementes dans statAfrikR, selectionnes selon leur pertinence et disponibilite pour les INS africains (reference PARIS21, AFRISTAT, Nations Unies).
odd_catalogue( objectif = NULL, disponibilite = NULL, statut = NULL, format = c("tibble", "flextable") )odd_catalogue( objectif = NULL, disponibilite = NULL, statut = NULL, format = c("tibble", "flextable") )
objectif |
integer ou NULL – Filtrer par numero d'ODD (1 a 17). NULL retourne tous les indicateurs. Defaut : NULL |
disponibilite |
character ou NULL – Filtrer par disponibilite des
donnees : |
statut |
character ou NULL – Filtrer par statut d'implementation :
|
format |
character – |
Tibble ou flextable du catalogue filtre
# Tous les indicateurs odd_catalogue() # Indicateurs ODD 1 (pauvrete) implementes odd_catalogue(objectif = 1, statut = "implementee") # Indicateurs a haute disponibilite odd_catalogue(disponibilite = "haute")# Tous les indicateurs odd_catalogue() # Indicateurs ODD 1 (pauvrete) implementes odd_catalogue(objectif = 1, statut = "implementee") # Indicateurs a haute disponibilite odd_catalogue(disponibilite = "haute")
Calcule un indicateur ODD specifique a partir des donnees
d'enquete. Retourne un objet saf_odd avec la valeur, les
metadonnees et les composantes du calcul.
odd_indicateur(data, code_odd, ..., poids = NULL, na.rm = TRUE)odd_indicateur(data, code_odd, ..., poids = NULL, na.rm = TRUE)
data |
data.frame ou |
code_odd |
character – Code ODD au format "X.Y.Z"
(ex : "1.1.1", "7.1.1"). Voir |
... |
Arguments specifiques a chaque indicateur (voir Details) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
na.rm |
logical – Exclure les NA. Defaut : TRUE |
Arguments specifiques par indicateur :
var_depense : variable de depenses par tete,
seuil : seuil en monnaie locale (defaut : equivalence 2.15 USD PPA)
var_depense : variable de depenses par tete,
seuil : seuil national de pauvrete
var_taille : taille de l'enfant (cm),
var_age_mois : age en mois,
var_sexe : sexe (1=M, 2=F ou "M"/"F")
var_deces_enfant : indicateur deces enfant (0/1),
var_naissances : nombre de naissances vivantes ou variable indicatrice
var_age_mariage : age au premier mariage,
var_age_actuel : age actuel,
seuil_age : seuil (defaut : 18)
var_indicateur : variable binaire (1 = condition remplie, 0 = non)
var_depense : variable de depenses,
var_periode : variable de periode (annees),
seuil_pct : percentile inferieur (defaut : 40)
Un objet de classe saf_odd avec :
Valeur de l'indicateur
Unite de mesure
Code ODD
Libelle court
Numerateur du calcul
Denominateur du calcul
Observations utilisees
Valeurs manquantes exclues
Metadonnees completes du catalogue
set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/500000)), poids = runif(100, 0.8, 1.2), electricite = sample(c(0L, 1L), 100, TRUE, prob = c(0.45, 0.55)), eau_potable = sample(c(0L, 1L), 100, TRUE, prob = c(0.35, 0.65)), internet = sample(c(0L, 1L), 100, TRUE, prob = c(0.7, 0.3)) ) # ODD 1.2.1 - Pauvrete nationale odd_indicateur(menages, "1.2.1", var_depense = "depense_pc", seuil = 200000, poids = "poids") # ODD 7.1.1 - Acces a l'electricite odd_indicateur(menages, "7.1.1", var_indicateur = "electricite", poids = "poids")set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/500000)), poids = runif(100, 0.8, 1.2), electricite = sample(c(0L, 1L), 100, TRUE, prob = c(0.45, 0.55)), eau_potable = sample(c(0L, 1L), 100, TRUE, prob = c(0.35, 0.65)), internet = sample(c(0L, 1L), 100, TRUE, prob = c(0.7, 0.3)) ) # ODD 1.2.1 - Pauvrete nationale odd_indicateur(menages, "1.2.1", var_depense = "depense_pc", seuil = 200000, poids = "poids") # ODD 7.1.1 - Acces a l'electricite odd_indicateur(menages, "7.1.1", var_indicateur = "electricite", poids = "poids")
Retourne une palette de couleurs officielle pour les graphiques INS, compatible daltonisme.
palette_ins(n = 6, type = c("categoriel", "sequentiel", "divergent"))palette_ins(n = 6, type = c("categoriel", "sequentiel", "divergent"))
n |
integer — Nombre de couleurs souhaité. Défaut : 6. |
type |
character — |
Vecteur de codes couleurs hexadécimaux.
palette_ins(4)palette_ins(4)
Calcule l'Indice de Parite entre les Sexes (ISP) pour les taux de scolarisation bruts et nets. ODD 4.5.1. ISP = valeur filles / valeur garcons. ISP = 1 = parite parfaite.
parite_education( donnees, var_scolarise, var_sexe, poids = NULL, var_niveau = NULL )parite_education( donnees, var_scolarise, var_sexe, poids = NULL, var_niveau = NULL )
donnees |
data.frame – Donnees menages ou enfants |
var_scolarise |
character – Variable 0/1 : enfant scolarise |
var_sexe |
character – Variable sexe (H/F, M/F, 1/2, homme/femme) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
var_niveau |
character ou NULL – Niveau scolaire pour ISP par niveau. Defaut : NULL |
Un objet de classe saf_genre
set.seed(42) n <- 600 enfants <- data.frame( scolarise = rbinom(n, 1, 0.72), sexe = sample(c("H","F"), n, TRUE), niveau = sample(c("primaire","secondaire"), n, TRUE), poids = runif(n, 0.8, 1.3) ) parite_education(enfants, "scolarise", "sexe", poids="poids", var_niveau="niveau")set.seed(42) n <- 600 enfants <- data.frame( scolarise = rbinom(n, 1, 0.72), sexe = sample(c("H","F"), n, TRUE), niveau = sample(c("primaire","secondaire"), n, TRUE), poids = runif(n, 0.8, 1.3) ) parite_education(enfants, "scolarise", "sexe", poids="poids", var_niveau="niveau")
Calcule la part de revenu ou de consommation detenue par chaque quintile (ou decile) de la population. Inclut les ratios Palma et Q5/Q1.
part_quintile(donnees, var_revenu, poids = NULL, n_groupes = 5L)part_quintile(donnees, var_revenu, poids = NULL, n_groupes = 5L)
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
n_groupes |
integer – 5 (quintiles) ou 10 (deciles). Defaut : 5L |
Un tibble avec parts par groupe + ratios Palma et Q5/Q1
set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), poids = runif(300, 0.8, 1.3) ) part_quintile(menages, "depense", poids = "poids")set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), poids = runif(300, 0.8, 1.3) ) part_quintile(menages, "depense", poids = "poids")
Proportion des actifs occupes vivant sous le seuil de pauvrete national. Indicateur ODD 8.1.1 et lien emploi-pauvrete.
pauvrete_travail( donnees, var_employe, var_revenu, seuil, poids = NULL, sous_groupes = NULL )pauvrete_travail( donnees, var_employe, var_revenu, seuil, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles (actifs occupes) |
var_employe |
character – Variable 0/1 : a un emploi |
var_revenu |
character – Variable de revenu ou consommation par tete du menage |
seuil |
numeric – Seuil de pauvrete national |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) n <- 500 individus <- data.frame( employe = rbinom(n, 1, 0.60), revenu = pmax(10000, rnorm(n, 180000, 90000)), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) pauvrete_travail(individus, "employe", "revenu", seuil = 144800, poids = "poids")set.seed(42) n <- 500 individus <- data.frame( employe = rbinom(n, 1, 0.60), revenu = pmax(10000, rnorm(n, 180000, 90000)), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) pauvrete_travail(individus, "employe", "revenu", seuil = 144800, poids = "poids")
Proportion de menages pouvant joindre les deux bouts ou percevant leur situation economique comme bonne ou tres bonne.
perception_economique( donnees, var_perception, codes_positifs = NULL, poids = NULL, sous_groupes = NULL )perception_economique( donnees, var_perception, codes_positifs = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees menages |
var_perception |
character – Variable de perception economique. 0/1 (1=situation positive) OU categorielle avec codes_positifs. |
codes_positifs |
numeric ou NULL – Codes positifs si variable categorielle. Defaut : NULL (variable deja binaire) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_subjectif
set.seed(42) n <- 400 menages <- data.frame( econ_ok = rbinom(n, 1, 0.38), quintile = sample(paste0("Q", 1:5), n, TRUE), poids = runif(n, 0.8, 1.3) ) perception_economique(menages, "econ_ok", poids="poids", sous_groupes="quintile")set.seed(42) n <- 400 menages <- data.frame( econ_ok = rbinom(n, 1, 0.38), quintile = sample(paste0("Q", 1:5), n, TRUE), poids = runif(n, 0.8, 1.3) ) perception_economique(menages, "econ_ok", poids="poids", sous_groupes="quintile")
Calcule la proportion de menages ayant declare souffrir de privations subjectives (manque de nourriture, eau, medicaments, argent) au cours des 12 derniers mois. Complement a l'IPM.
privations_ressenties( donnees, vars_privations, poids = NULL, sous_groupes = NULL )privations_ressenties( donnees, vars_privations, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees menages |
vars_privations |
named character – Vecteur nomme : type de privation -> variable 0/1. Ex : c(Nourriture="manque_nour", Eau="manque_eau", Medicaments="manque_med") |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec prevalence par type de privation
set.seed(42) n <- 400 menages <- data.frame( manque_nour = rbinom(n, 1, 0.48), manque_eau = rbinom(n, 1, 0.35), manque_med = rbinom(n, 1, 0.58), manque_arg = rbinom(n, 1, 0.62), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) privations_ressenties(menages, vars_privations = c(Nourriture="manque_nour", Eau="manque_eau", Medicaments="manque_med", Argent="manque_arg"), poids="poids", sous_groupes="milieu")set.seed(42) n <- 400 menages <- data.frame( manque_nour = rbinom(n, 1, 0.48), manque_eau = rbinom(n, 1, 0.35), manque_med = rbinom(n, 1, 0.58), manque_arg = rbinom(n, 1, 0.62), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) privations_ressenties(menages, vars_privations = c(Nourriture="manque_nour", Eau="manque_eau", Medicaments="manque_med", Argent="manque_arg"), poids="poids", sous_groupes="milieu")
Calcule la proportion de la population couverte par au moins un regime de protection sociale (retraite, assurance maladie, allocations). ODD 1.3.1.
protection_sociale(donnees, vars_protection, poids = NULL, sous_groupes = NULL)protection_sociale(donnees, vars_protection, poids = NULL, sous_groupes = NULL)
donnees |
data.frame – Donnees menages ou individus |
vars_protection |
named character – Vecteur nomme : type de protection -> variable 0/1. Ex: c(Retraite="retraite", Assurance_maladie="assur_maladie") |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec couverture par type de protection
set.seed(42) n <- 400 individus <- data.frame( retraite = rbinom(n, 1, 0.18), assur_maladie = rbinom(n, 1, 0.22), allocations = rbinom(n, 1, 0.12), poids = runif(n, 0.8, 1.3) ) protection_sociale(individus, vars_protection = c(Retraite="retraite", Assurance_maladie="assur_maladie", Allocations="allocations"), poids = "poids")set.seed(42) n <- 400 individus <- data.frame( retraite = rbinom(n, 1, 0.18), assur_maladie = rbinom(n, 1, 0.22), allocations = rbinom(n, 1, 0.12), poids = runif(n, 0.8, 1.3) ) protection_sociale(individus, vars_protection = c(Retraite="retraite", Assurance_maladie="assur_maladie", Allocations="allocations"), poids = "poids")
Produit une pyramide des ages institutionnelle au format ggplot2. Permet la superposition de deux annees pour l'analyse des tendances demographiques.
pyramide_age( donnees, var_age, var_sexe, code_homme = "H", code_femme = "F", poids = NULL, groupes_age = 5L, titre = NULL, source = NULL )pyramide_age( donnees, var_age, var_sexe, code_homme = "H", code_femme = "F", poids = NULL, groupes_age = 5L, titre = NULL, source = NULL )
donnees |
data.frame – Donnees individuelles |
var_age |
character – Variable age en annees |
var_sexe |
character – Variable sexe |
code_homme |
character ou numeric – Code hommes. Defaut : "H" |
code_femme |
character ou numeric – Code femmes. Defaut : "F" |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
groupes_age |
integer – Largeur des groupes. Defaut : 5L |
titre |
character ou NULL – Titre. Defaut : NULL |
source |
character ou NULL – Source. Defaut : NULL |
Un objet ggplot2
set.seed(42) n <- 3000 individus <- data.frame( age = round(rexp(n, 1/30)), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) individus$age <- pmin(individus$age, 85) pyramide_age(individus, "age", "sexe", poids="poids", titre="Pyramide des ages", source="Recensement 2024")set.seed(42) n <- 3000 individus <- data.frame( age = round(rexp(n, 1/30)), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) individus$age <- pmin(individus$age, 85) pyramide_age(individus, "age", "sexe", poids="poids", titre="Pyramide des ages", source="Recensement 2024")
Génère une pyramide des âges pondérée à partir de données individuelles ou agrégées. Adapté aux recensements et enquêtes démographiques.
pyramide_ages( data, var_age, var_sexe, var_poids = NULL, modalite_homme = "Masculin", modalite_femme = "Féminin", largeur_classe = 5L, age_max = 80L, titre = NULL, pourcentage = TRUE, couleur_homme = "#1B6CA8", couleur_femme = "#E8872A" )pyramide_ages( data, var_age, var_sexe, var_poids = NULL, modalite_homme = "Masculin", modalite_femme = "Féminin", largeur_classe = 5L, age_max = 80L, titre = NULL, pourcentage = TRUE, couleur_homme = "#1B6CA8", couleur_femme = "#E8872A" )
data |
data.frame ou tibble — Données individuelles |
var_age |
character — Variable d'âge |
var_sexe |
character — Variable de sexe/genre |
var_poids |
character ou NULL — Variable de pondération. Défaut : NULL. |
modalite_homme |
character — Modalité masculine. Défaut : "Masculin". |
modalite_femme |
character — Modalité féminine. Défaut : "Féminin". |
largeur_classe |
integer — Largeur des classes d'âge en années. Défaut : 5. |
age_max |
integer — Âge maximum affiché. Défaut : 80. |
titre |
character ou NULL — Titre du graphique. Défaut : NULL. |
pourcentage |
logical — Afficher en pourcentage (TRUE) ou effectifs (FALSE). Défaut : TRUE. |
couleur_homme |
character — Couleur hommes. Défaut : "#1B6CA8". |
couleur_femme |
character — Couleur femmes. Défaut : "#E8872A". |
Un objet ggplot.
if (requireNamespace("ggplot2", quietly = TRUE)) { donnees <- data.frame(age=sample(0:80,100,replace=TRUE), sexe=sample(c("H","F"),100,replace=TRUE)) pyramide_ages(donnees, var_age="age", var_sexe="sexe") }if (requireNamespace("ggplot2", quietly = TRUE)) { donnees <- data.frame(age=sample(0:80,100,replace=TRUE), sexe=sample(c("H","F"),100,replace=TRUE)) pyramide_ages(donnees, var_age="age", var_sexe="sexe") }
Genere un rapport complet sur l'harmonisation geographique : zones appariees, non appariees, ambigues. Format institutionnel conforme aux standards IHSN/PARIS21.
rapport_harmonisation( donnees, var_zone, reference, var_ref = "nom_local", pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )rapport_harmonisation( donnees, var_zone, reference, var_ref = "nom_local", pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )
donnees |
data.frame – Donnees source |
var_zone |
character – Variable zone |
reference |
data.frame ou saf_concordance – Reference geographique |
var_ref |
character – Variable zone de reference. Defaut : "nom_local" |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
Un tibble de rapport d'harmonisation
donnees <- data.frame( region = c("Bangui","Ombella-Mpoko","Kemo","Zone inconnue"), stringsAsFactors = FALSE ) ref <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Kemo","Bamingui-Bangoran"), stringsAsFactors = FALSE ) rapport_harmonisation(donnees, "region", ref, pays="RCA", annee=2026L)donnees <- data.frame( region = c("Bangui","Ombella-Mpoko","Kemo","Zone inconnue"), stringsAsFactors = FALSE ) ref <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Kemo","Bamingui-Bangoran"), stringsAsFactors = FALSE ) rapport_harmonisation(donnees, "region", ref, pays="RCA", annee=2026L)
Synthetise les indicateurs de qualite des donnees demographiques (Whipple, Myers, rapport de masculinite, coherence) en un tableau institutionnel conforme aux standards Nations Unies.
rapport_qualite_demo( donnees, var_age, var_sexe = NULL, poids = NULL, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source_donnees = "Recensement" )rapport_qualite_demo( donnees, var_age, var_sexe = NULL, poids = NULL, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source_donnees = "Recensement" )
donnees |
data.frame – Donnees individuelles |
var_age |
character – Variable age |
var_sexe |
character ou NULL – Variable sexe. Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
source_donnees |
character – Source des donnees. Defaut : "Recensement" |
Un tibble de rapport qualite
set.seed(42) n <- 2000 ages_base <- sample(10:79, n, TRUE) ages <- ifelse(runif(n) < 0.15, ages_base - ages_base%%5, ages_base) individus <- data.frame( age = ages, sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) rapport_qualite_demo(individus, "age", var_sexe="sexe", poids="poids", pays="RCA", annee=2024L)set.seed(42) n <- 2000 ages_base <- sample(10:79, n, TRUE) ages <- ifelse(runif(n) < 0.15, ages_base - ages_base%%5, ages_base) individus <- data.frame( age = ages, sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) rapport_qualite_demo(individus, "age", var_sexe="sexe", poids="poids", pays="RCA", annee=2024L)
Genere un rapport de synthese sur la qualite du plan de sondage : taux de reponse, effets de plan, CV, validite des poids. Format institutionnel IHSN/DHS.
rapport_qualite_sondage( saf_design, variables = NULL, var_reponse = NULL, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )rapport_qualite_sondage( saf_design, variables = NULL, var_reponse = NULL, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )
saf_design |
saf_design – Objet design |
variables |
character ou NULL – Variables pour le calcul du DEFF. Defaut : NULL |
var_reponse |
character ou NULL – Variable de non-reponse. Defaut : NULL |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
Un tibble de rapport qualite
set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE), repondu = rbinom(n, 1, 0.88), pauvre = rbinom(n, 1, 0.45) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) rapport_qualite_sondage(design, variables="pauvre", var_reponse="repondu", pays="RCA", annee=2026L)set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE), repondu = rbinom(n, 1, 0.88), pauvre = rbinom(n, 1, 0.45) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) rapport_qualite_sondage(design, variables="pauvre", var_reponse="repondu", pays="RCA", annee=2026L)
Calcule le rapport de masculinite (nombre d'hommes pour 100 femmes) par groupe d'age quinquennal. Permet de detecter des anomalies liees aux guerres, migrations ou erreurs de collecte.
ratio_masculinite( donnees, var_age, var_sexe, code_homme = "H", code_femme = "F", poids = NULL, groupes_age = 5L )ratio_masculinite( donnees, var_age, var_sexe, code_homme = "H", code_femme = "F", poids = NULL, groupes_age = 5L )
donnees |
data.frame – Donnees individuelles |
var_age |
character – Variable age en annees |
var_sexe |
character – Variable sexe |
code_homme |
character ou numeric – Code pour les hommes. Defaut : "H" |
code_femme |
character ou numeric – Code pour les femmes. Defaut : "F" |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
groupes_age |
integer – Largeur des groupes d'age. Defaut : 5L |
Un tibble avec rapport de masculinite par groupe d'age
set.seed(42) n <- 2000 individus <- data.frame( age = sample(0:79, n, TRUE), sexe = sample(c("H","F"), n, TRUE, prob=c(0.49,0.51)), poids = runif(n, 0.8, 1.3) ) ratio_masculinite(individus, "age", "sexe", poids="poids")set.seed(42) n <- 2000 individus <- data.frame( age = sample(0:79, n, TRUE), sexe = sample(c("H","F"), n, TRUE, prob=c(0.49,0.51)), poids = runif(n, 0.8, 1.3) ) ratio_masculinite(individus, "age", "sexe", poids="poids")
Recode une variable selon une table de correspondance explicite. Supporte le recodage numérique (classes d'âge, quintiles) et textuel (modalités). Traçabilité complète des transformations.
recoder_variable( data, var, table_recodage, var_sortie = NULL, na_si_absent = TRUE )recoder_variable( data, var, table_recodage, var_sortie = NULL, na_si_absent = TRUE )
data |
data.frame ou tibble — Données |
var |
character — Nom de la variable à recoder |
table_recodage |
data.frame — Table avec colonnes |
var_sortie |
character ou NULL — Nom de la variable recodée. Si NULL, remplace la variable originale. Défaut : NULL. |
na_si_absent |
logical — Mettre NA si la valeur n'est pas dans la table de recodage. Défaut : TRUE. |
Le tibble avec la variable recodée.
## Not run: # Recodage des classes d'âge table_age <- data.frame( avant = c("15-24", "25-34", "35-49", "50+"), apres = c("Jeune", "Adulte", "Adulte", "Senior") ) donnees <- recoder_variable(donnees, "classe_age", table_age) # Recodage avec vecteur nommé donnees <- recoder_variable( donnees, "sexe", table_recodage = c("1" = "Masculin", "2" = "Féminin") ) ## End(Not run)## Not run: # Recodage des classes d'âge table_age <- data.frame( avant = c("15-24", "25-34", "35-49", "50+"), apres = c("Jeune", "Adulte", "Adulte", "Senior") ) donnees <- recoder_variable(donnees, "classe_age", table_age) # Recodage avec vecteur nommé donnees <- recoder_variable( donnees, "sexe", table_recodage = c("1" = "Masculin", "2" = "Féminin") ) ## End(Not run)
Calcule la prevalence du retard de croissance chez les enfants de moins de 5 ans (taille-pour-age < -2 ecarts-types selon les standards OMS 2006). ODD 2.2.1.
retard_croissance( donnees, var_taille_age_z = NULL, var_taille = NULL, var_age_mois = NULL, var_sexe = NULL, poids = NULL, sous_groupes = NULL, seuil = -2 )retard_croissance( donnees, var_taille_age_z = NULL, var_taille = NULL, var_age_mois = NULL, var_sexe = NULL, poids = NULL, sous_groupes = NULL, seuil = -2 )
donnees |
data.frame – Donnees enfants < 5 ans |
var_taille_age_z |
character – Score Z taille-pour-age (HAZ). Si NULL, calcule depuis var_taille, var_age et var_sexe. Defaut : NULL |
var_taille |
character ou NULL – Taille en cm. Defaut : NULL |
var_age_mois |
character ou NULL – Age en mois. Defaut : NULL |
var_sexe |
character ou NULL – Sexe (1=garcon, 2=fille ou "M"/"F"). Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
seuil |
numeric – Seuil (score Z). Defaut : -2 |
Un objet de classe saf_anthropo
set.seed(42) n <- 500 enfants <- data.frame( haz = rnorm(n, -1.2, 1.3), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.7, 1.4) ) retard_croissance(enfants, var_taille_age_z = "haz", poids = "poids")set.seed(42) n <- 500 enfants <- data.frame( haz = rnorm(n, -1.2, 1.3), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.7, 1.4) ) retard_croissance(enfants, var_taille_age_z = "haz", poids = "poids")
10 regions du Cameroun.
saf_cameroun_departementssaf_cameroun_departements
Objet sf avec colonnes : departement, code, geometry.
Natural Earth – statAfrikR Foundation
cam <- carte_zones('subdivisions', pays = 'CMR')cam <- carte_zones('subdivisions', pays = 'CMR')
Communaute Economique des Etats de l'Afrique de l'Ouest.
saf_cedeaosaf_cedeao
Objet sf (sous-ensemble de saf_pays_afrique)
Natural Earth – statAfrikR Foundation
cedeao <- carte_zones('cedeao')cedeao <- carte_zones('cedeao')
Cameroun, Centrafrique, Congo, Gabon, Guinee Equatoriale, Tchad.
saf_cemacsaf_cemac
Objet sf (sous-ensemble de saf_pays_afrique)
Natural Earth – statAfrikR Foundation
cemac <- carte_zones('cemac')cemac <- carte_zones('cemac')
Communaute d'Afrique de l'Est.
saf_eausaf_eau
Objet sf (sous-ensemble de saf_pays_afrique)
Natural Earth – statAfrikR Foundation
eau <- carte_zones('eau')eau <- carte_zones('eau')
Fond de carte des 54 pays africains.
saf_pays_afriquesaf_pays_afrique
Objet sf avec colonnes : pays, pays_fr, iso2, iso3, sous_region, geometry.
Natural Earth via rnaturalearth – statAfrikR Foundation
afrique <- carte_zones('afrique')afrique <- carte_zones('afrique')
17 prefectures de la RCA avec codes administratifs.
saf_rca_prefecturessaf_rca_prefectures
Objet sf avec colonnes : pays, iso3, prefecture, code, geometry.
Natural Earth – statAfrikR Foundation
rca <- carte_zones('rca')rca <- carte_zones('rca')
Communaute de Developpement de l'Afrique Australe.
saf_sadcsaf_sadc
Objet sf (sous-ensemble de saf_pays_afrique)
Natural Earth – statAfrikR Foundation
sadc <- carte_zones('sadc')sadc <- carte_zones('sadc')
14 regions du Senegal.
saf_senegal_regionssaf_senegal_regions
Objet sf avec colonnes : region, code, geometry.
Natural Earth – statAfrikR Foundation
sen <- carte_zones('subdivisions', pays = 'SEN')sen <- carte_zones('subdivisions', pays = 'SEN')
Prefectures, regions et provinces de 43 pays africains (744 subdivisions + 17 prefectures RCA = 761 total).
saf_subdivisions_afriquesaf_subdivisions_afrique
Objet sf avec colonnes : pays, iso3, subdivision, code_admin, geometry.
Natural Earth – statAfrikR Foundation
cam <- carte_zones('subdivisions', pays = 'CMR')cam <- carte_zones('subdivisions', pays = 'CMR')
Prevalence des symptomes de stress, anxiete et isolement percu. Compatible avec les modules Kessler K6, PHQ-4 et GAD-2 adaptes aux enquetes menages africaines.
sante_mentale( donnees, var_stress = NULL, var_anxiete = NULL, var_isolement = NULL, type = c("binaire", "score"), poids = NULL, sous_groupes = NULL )sante_mentale( donnees, var_stress = NULL, var_anxiete = NULL, var_isolement = NULL, type = c("binaire", "score"), poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles |
var_stress |
character ou NULL – Variable stress (0/1 ou score). Defaut : NULL |
var_anxiete |
character ou NULL – Variable anxiete (0/1). Defaut : NULL |
var_isolement |
character ou NULL – Variable isolement social (0/1). Defaut : NULL |
type |
character – "binaire" (variables 0/1) ou "score" (variables continues). Defaut : "binaire" |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec prevalence par indicateur
set.seed(42) n <- 500 individus <- data.frame( stress = rbinom(n, 1, 0.38), anxiete = rbinom(n, 1, 0.28), isolement = rbinom(n, 1, 0.22), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) sante_mentale(individus, var_stress="stress", var_anxiete="anxiete", var_isolement="isolement", poids="poids", sous_groupes="sexe")set.seed(42) n <- 500 individus <- data.frame( stress = rbinom(n, 1, 0.38), anxiete = rbinom(n, 1, 0.28), isolement = rbinom(n, 1, 0.22), sexe = sample(c("H","F"), n, TRUE), poids = runif(n, 0.8, 1.3) ) sante_mentale(individus, var_stress="stress", var_anxiete="anxiete", var_isolement="isolement", poids="poids", sous_groupes="sexe")
Calcule le score moyen de satisfaction dans la vie sur une echelle de 0 a 10 (echelle de Cantril). Indicateur de bien-etre subjectif global conforme a la methodologie OCDE / Gallup World Poll.
satisfaction_vie(donnees, var_satisfaction, poids = NULL, sous_groupes = NULL)satisfaction_vie(donnees, var_satisfaction, poids = NULL, sous_groupes = NULL)
donnees |
data.frame – Donnees individuelles |
var_satisfaction |
character – Variable de satisfaction (0-10) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_subjectif
set.seed(42) n <- 500 individus <- data.frame( satisfaction = pmin(10, pmax(0, round(rnorm(n, 5.8, 2.1)))), milieu = sample(c("urbain","rural"), n, TRUE), quintile = sample(paste0("Q", 1:5), n, TRUE), poids = runif(n, 0.8, 1.3) ) satisfaction_vie(individus, "satisfaction", poids="poids", sous_groupes=c("milieu","quintile"))set.seed(42) n <- 500 individus <- data.frame( satisfaction = pmin(10, pmax(0, round(rnorm(n, 5.8, 2.1)))), milieu = sample(c("urbain","rural"), n, TRUE), quintile = sample(paste0("Q", 1:5), n, TRUE), poids = runif(n, 0.8, 1.3) ) satisfaction_vie(individus, "satisfaction", poids="poids", sous_groupes=c("milieu","quintile"))
Proportion de la population se sentant en securite (le soir dans le quartier, au travail, dans les transports). Methodologie Afrobarometer / Gallup.
sentiment_securite( donnees, var_securite, codes_securise = NULL, poids = NULL, sous_groupes = NULL )sentiment_securite( donnees, var_securite, codes_securise = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles |
var_securite |
character – Variable de securite percue (0/1 ou codes_securise) |
codes_securise |
numeric ou NULL – Codes indiquant "securise". Defaut : NULL (variable deja binaire) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_subjectif
set.seed(42) n <- 400 individus <- data.frame( securise = rbinom(n, 1, 0.52), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) sentiment_securite(individus, "securise", poids="poids", sous_groupes=c("sexe","milieu"))set.seed(42) n <- 400 individus <- data.frame( securise = rbinom(n, 1, 0.52), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) sentiment_securite(individus, "securise", poids="poids", sous_groupes=c("sexe","milieu"))
Calcule la proportion de personnes en emploi travaillant moins d'heures qu'elles ne le souhaitent (sous-emploi visible). Composante de LU2 dans la mesure de la sous-utilisation de la main-d'oeuvre OIT.
sous_emploi_temps( donnees, var_heures_travaillees, var_heures_souhaitees = NULL, seuil_heures = 35L, var_disponible = NULL, poids = NULL, sous_groupes = NULL )sous_emploi_temps( donnees, var_heures_travaillees, var_heures_souhaitees = NULL, seuil_heures = 35L, var_disponible = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individus en emploi |
var_heures_travaillees |
character – Heures effectivement travaillees par semaine |
var_heures_souhaitees |
character ou NULL – Heures souhaitees. Si NULL, utilise le seuil. Defaut : NULL |
seuil_heures |
integer – Seuil d'heures hebdomadaires en dessous duquel il y a sous-emploi (defaut : 35L) |
var_disponible |
character ou NULL – Variable 0/1 : disponible pour travailler plus. Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) n <- 400 employes <- data.frame( heures_trav = pmax(0, rnorm(n, 38, 15)), disponible = rbinom(n, 1, 0.3), poids = runif(n, 0.8, 1.3) ) sous_emploi_temps(employes, "heures_trav", seuil_heures = 35L, poids = "poids")set.seed(42) n <- 400 employes <- data.frame( heures_trav = pmax(0, rnorm(n, 38, 15)), disponible = rbinom(n, 1, 0.3), poids = runif(n, 0.8, 1.3) ) sous_emploi_temps(employes, "heures_trav", seuil_heures = 35L, poids = "poids")
Détecte et corrige le "heap effect" (attraction vers les âges ronds) fréquent dans les enquêtes africaines où les âges sont déclarés. Calcule l'indice de Whipple et l'indice de Myers pour évaluer la qualité.
standardiser_ages( data, var_age = "age", methode = c("aucune", "interpolation", "united_nations"), age_min = 0L, age_max = 120L )standardiser_ages( data, var_age = "age", methode = c("aucune", "interpolation", "united_nations"), age_min = 0L, age_max = 120L )
data |
data.frame ou tibble — Données |
var_age |
character — Nom de la variable d'âge |
methode |
character — Méthode de correction :
|
age_min |
integer — Âge minimum valide. Défaut : 0. |
age_max |
integer — Âge maximum valide. Défaut : 120. |
Une liste avec :
donnees |
tibble avec âges corrigés si methode != "aucune" |
indice_whipple |
numeric — Indice de Whipple (1 = parfait, > 1.05 = problème) |
indice_myers |
numeric — Indice de Myers (0 = parfait) |
diagnostic |
character — Évaluation de la qualité |
## Not run: donnees <- data.frame(age = sample(0:80, 200, replace=TRUE)) standardiser_ages(donnees, var_age="age") ## End(Not run)## Not run: donnees <- data.frame(age = sample(0:80, 200, replace=TRUE)) standardiser_ages(donnees, var_age="age") ## End(Not run)
Calcule les statistiques descriptives complètes pour une ou plusieurs variables numériques, avec prise en compte optionnelle du plan de sondage complexe. Produit un tableau formaté prêt à publier.
stat_descr( data, vars, groupe = NULL, ponderee = TRUE, ic = TRUE, format_sortie = c("tibble", "flextable") )stat_descr( data, vars, groupe = NULL, ponderee = TRUE, ic = TRUE, format_sortie = c("tibble", "flextable") )
data |
data.frame, tibble ou objet |
vars |
character — Noms des variables à analyser |
groupe |
character ou NULL — Variable de regroupement. Défaut : NULL. |
ponderee |
logical — Utiliser les pondérations si data est un svydesign. Défaut : TRUE. |
ic |
logical — Calculer les intervalles de confiance à 95%. Défaut : TRUE. |
format_sortie |
character — Format : |
Tibble ou flextable avec : n, moyenne, médiane, écart-type, min, max, IC95.
## Not run: donnees <- data.frame(age=c(25,34,45), revenu=c(150000,200000,180000)) stat_descr(donnees, vars=c("age","revenu")) ## End(Not run)## Not run: donnees <- data.frame(age=c(25,34,45), revenu=c(150000,200000,180000)) stat_descr(donnees, vars=c("age","revenu")) ## End(Not run)
Analyse les revisions entre les estimations preliminaires, provisoires et definitives du PIB. Produit un tableau et un graphique de suivi conforme aux bonnes pratiques de communication des INS.
suivre_revisions_pib( donnees, var_annee = "annee", var_version = "version", var_valeur = "valeur", pays = "Pays", unite = "Mds FCFA" )suivre_revisions_pib( donnees, var_annee = "annee", var_version = "version", var_valeur = "valeur", pays = "Pays", unite = "Mds FCFA" )
donnees |
data.frame – Donnees avec colonnes annee, version, valeur. Versions attendues : "preliminaire", "provisoire", "definitif" |
var_annee |
character – Variable annee. Defaut : "annee" |
var_version |
character – Variable version du PIB. Defaut : "version" |
var_valeur |
character – Variable valeur du PIB. Defaut : "valeur" |
pays |
character – Nom du pays. Defaut : "Pays" |
unite |
character – Unite. Defaut : "Mds FCFA" |
Un objet de classe saf_revision_pib
revisions <- data.frame( annee = rep(2019:2022, each=3), version = rep(c("preliminaire","provisoire","definitif"), 4), valeur = c(2210,2225,2240, 2320,2335,2348, 2415,2430,NA, 2510,NA,NA), stringsAsFactors = FALSE ) suivre_revisions_pib(revisions, pays="Cameroun", unite="Mds FCFA")revisions <- data.frame( annee = rep(2019:2022, each=3), version = rep(c("preliminaire","provisoire","definitif"), 4), valeur = c(2210,2225,2240, 2320,2335,2348, 2415,2430,NA, 2510,NA,NA), stringsAsFactors = FALSE ) suivre_revisions_pib(revisions, pays="Cameroun", unite="Mds FCFA")
Identifie et supprime les enregistrements dupliqués selon une ou plusieurs clés d'identification. Produit un rapport des doublons détectés.
supprimer_doublons( data, cles = NULL, garder = c("premier", "dernier", "aucun"), rapport = TRUE )supprimer_doublons( data, cles = NULL, garder = c("premier", "dernier", "aucun"), rapport = TRUE )
data |
data.frame ou tibble — Données à dédupliquer |
cles |
character ou NULL — Variables clés pour la détection. Si NULL, utilise toutes les colonnes. Défaut : NULL. |
garder |
character — Quel doublon conserver :
|
rapport |
logical — Retourner un rapport des doublons. Défaut : TRUE. |
Si rapport = FALSE : tibble dédupliqué.
Si rapport = TRUE : liste avec $donnees et $rapport.
## Not run: donnees <- data.frame(id=c(1,2,2,3), val=c(10,20,20,30)) supprimer_doublons(donnees, cles="id") ## End(Not run)## Not run: donnees <- data.frame(id=c(1,2,2,3), val=c(10,20,20,30)) supprimer_doublons(donnees, cles="id") ## End(Not run)
Produit un tableau croisé (ou tableau de fréquences simple) avec prise en compte optionnelle de la pondération et du plan de sondage complexe. Résultat formaté pour publication directe.
tab_croisee( data, var_ligne, var_col = NULL, var_poids = NULL, ic = TRUE, pourcentage = c("colonne", "ligne", "total"), format_sortie = c("flextable", "tibble") )tab_croisee( data, var_ligne, var_col = NULL, var_poids = NULL, ic = TRUE, pourcentage = c("colonne", "ligne", "total"), format_sortie = c("flextable", "tibble") )
data |
data.frame, tibble ou objet |
var_ligne |
character — Variable en ligne |
var_col |
character ou NULL — Variable en colonne. Si NULL, tableau de fréquences simple. Défaut : NULL. |
var_poids |
character ou NULL — Variable de pondération (ignorée si data est un svydesign). Défaut : NULL. |
ic |
logical — Calculer les IC à 95%. Défaut : TRUE. |
pourcentage |
character — Type : |
format_sortie |
character — |
Tibble ou flextable du tableau croisé.
## Not run: donnees <- data.frame( region = sample(c("Nord", "Sud", "Est"), 50, replace = TRUE), sexe = sample(c("H", "F"), 50, replace = TRUE) ) tab_croisee(donnees, "region", "sexe") ## End(Not run)## Not run: donnees <- data.frame( region = sample(c("Nord", "Sud", "Est"), 50, replace = TRUE), sexe = sample(c("H", "F"), 50, replace = TRUE) ) tab_croisee(donnees, "region", "sexe") ## End(Not run)
Cree une table de correspondance entre les differentes nomenclatures geographiques utilisees en Afrique : nomenclature locale des INS, codes ISO 3166-2, codes GADM, codes EHCVM, et noms officiels. Essentielle pour harmoniser les donnees entre plusieurs sources.
table_concordance( donnees, var_nom_local = "nom_zone", var_code_ins = NULL, var_code_iso = NULL, var_code_gadm = NULL, var_niveau = NULL, var_pays = NULL )table_concordance( donnees, var_nom_local = "nom_zone", var_code_ins = NULL, var_code_iso = NULL, var_code_gadm = NULL, var_niveau = NULL, var_pays = NULL )
donnees |
data.frame – Donnees de reference avec les noms/codes des zones administratives |
var_nom_local |
character – Variable nom local (utilise par l'INS). Defaut : "nom_zone" |
var_code_ins |
character ou NULL – Variable code INS. Defaut : NULL |
var_code_iso |
character ou NULL – Variable code ISO 3166-2. Defaut : NULL |
var_code_gadm |
character ou NULL – Variable code GADM. Defaut : NULL |
var_niveau |
character ou NULL – Variable niveau administratif (1 = region, 2 = departement, etc.). Defaut : NULL |
var_pays |
character ou NULL – Variable pays (code ISO 3). Defaut : NULL |
Un objet de classe saf_concordance
zones_rca <- data.frame( nom_zone = c("Bangui","Ombella-M'Poko","Bamingui-Bangoran", "Mbomou","Haute-Kotto"), code_ins = c("01","02","03","04","05"), code_iso = c("CF-BGF","CF-MP","CF-BB","CF-MB","CF-HK"), code_gadm = c("GADMa001","GADMa002","GADMa003","GADMa004","GADMa005"), niveau = rep(1L, 5), pays = rep("CAF", 5), stringsAsFactors = FALSE ) table_concordance(zones_rca, var_nom_local="nom_zone", var_code_ins="code_ins", var_code_iso="code_iso", var_code_gadm="code_gadm", var_niveau="niveau", var_pays="pays")zones_rca <- data.frame( nom_zone = c("Bangui","Ombella-M'Poko","Bamingui-Bangoran", "Mbomou","Haute-Kotto"), code_ins = c("01","02","03","04","05"), code_iso = c("CF-BGF","CF-MP","CF-BB","CF-MB","CF-HK"), code_gadm = c("GADMa001","GADMa002","GADMa003","GADMa004","GADMa005"), niveau = rep(1L, 5), pays = rep("CAF", 5), stringsAsFactors = FALSE ) table_concordance(zones_rca, var_nom_local="nom_zone", var_code_ins="code_ins", var_code_iso="code_iso", var_code_gadm="code_gadm", var_niveau="niveau", var_pays="pays")
Synthetise tous les indicateurs de bien-etre subjectif en un tableau institutionnel unique. Format adapte aux rapports nationaux sur le bien-etre et la qualite de vie.
tableau_bien_etre_subjectif( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )tableau_bien_etre_subjectif( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )
indicateurs |
list – Liste nommee d'objets saf_subjectif ou tibbles |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
source |
character ou NULL – Source. Defaut : NULL |
Un tibble institutionnel
set.seed(42) n <- 400 individus <- data.frame( satisf = pmin(10,pmax(0,round(rnorm(n,5.8,2.1)))), bonheur = rbinom(n,1,0.62), securise = rbinom(n,1,0.52), poids = runif(n,0.8,1.3) ) r1 <- suppressMessages( satisfaction_vie(individus,"satisf",poids="poids")) r2 <- suppressMessages( sentiment_securite(individus,"securise",poids="poids")) tableau_bien_etre_subjectif(list(satisfaction=r1, securite=r2), pays="RCA", annee=2026L)set.seed(42) n <- 400 individus <- data.frame( satisf = pmin(10,pmax(0,round(rnorm(n,5.8,2.1)))), bonheur = rbinom(n,1,0.62), securise = rbinom(n,1,0.52), poids = runif(n,0.8,1.3) ) r1 <- suppressMessages( satisfaction_vie(individus,"satisf",poids="poids")) r2 <- suppressMessages( sentiment_securite(individus,"securise",poids="poids")) tableau_bien_etre_subjectif(list(satisfaction=r1, securite=r2), pays="RCA", annee=2026L)
Produit un tableau de bord institutionnel du PIB combinant croissance, deflateur, comparaison de sources et revisions. Format comparable aux publications des INS africains.
tableau_bord_pib( donnees, var_pib_courant, var_pib_constant = NULL, var_annee = "annee", vars_secteurs = NULL, pays = "Pays", unite = "Mds FCFA" )tableau_bord_pib( donnees, var_pib_courant, var_pib_constant = NULL, var_annee = "annee", vars_secteurs = NULL, pays = "Pays", unite = "Mds FCFA" )
donnees |
data.frame – Donnees de comptes nationaux |
var_pib_courant |
character – PIB en prix courants |
var_pib_constant |
character ou NULL – PIB en prix constants. Defaut : NULL |
var_annee |
character – Variable annee. Defaut : "annee" |
vars_secteurs |
named character ou NULL – Secteurs economiques. Defaut : NULL |
pays |
character – Nom du pays. Defaut : "Pays" |
unite |
character – Unite. Defaut : "Mds FCFA" |
Un tibble du tableau de bord PIB
comptes <- data.frame( annee = 2018:2022, pib_courant = c(2100,2180,2250,2195,2380), pib_cst = c(2000,2060,2110,2060,2210) ) tableau_bord_pib(comptes, "pib_courant", var_pib_constant="pib_cst", pays="Cameroun", unite="Mds FCFA")comptes <- data.frame( annee = 2018:2022, pib_courant = c(2100,2180,2250,2195,2380), pib_cst = c(2000,2060,2110,2060,2210) ) tableau_bord_pib(comptes, "pib_courant", var_pib_constant="pib_cst", pays="Cameroun", unite="Mds FCFA")
Produit un tableau de contingence pondere avec marges, pourcentages et test du chi-deux.
tableau_croise_ins( data, ligne, colonne, poids = NULL, type_pct = c("colonne", "ligne", "total"), marges = TRUE, chi2 = TRUE, format = c("tibble", "flextable", "excel"), chemin = NULL, titre = NULL )tableau_croise_ins( data, ligne, colonne, poids = NULL, type_pct = c("colonne", "ligne", "total"), marges = TRUE, chi2 = TRUE, format = c("tibble", "flextable", "excel"), chemin = NULL, titre = NULL )
data |
data.frame, tibble ou |
ligne |
character – Variable en ligne |
colonne |
character – Variable en colonne |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
type_pct |
character – |
marges |
logical – Afficher les totaux. Defaut : TRUE |
chi2 |
logical – Calculer le test du chi-deux. Defaut : TRUE |
format |
character – |
chemin |
character ou NULL – Chemin Excel. Defaut : NULL |
titre |
character ou NULL – Titre. Defaut : NULL |
Tibble, flextable ou chemin Excel
set.seed(42) donnees <- data.frame( region = sample(c("Nord", "Sud", "Est", "Ouest"), 300, TRUE), milieu = sample(c("urbain", "rural"), 300, TRUE, prob = c(0.4, 0.6)), poids = runif(300, 0.7, 1.4) ) tableau_croise_ins(donnees, "region", "milieu", poids = "poids")set.seed(42) donnees <- data.frame( region = sample(c("Nord", "Sud", "Est", "Ouest"), 300, TRUE), milieu = sample(c("urbain", "rural"), 300, TRUE, prob = c(0.4, 0.6)), poids = runif(300, 0.7, 1.4) ) tableau_croise_ins(donnees, "region", "milieu", poids = "poids")
Produit un tableau de statistiques descriptives pondere, formate selon les conventions des INS africains. Exportable en Word (flextable) ou Excel (openxlsx2).
tableau_descriptif( data, vars, poids = NULL, par = NULL, stats = c("n", "moyenne", "mediane", "ecart_type", "min", "max", "ic"), format = c("tibble", "flextable", "excel"), chemin = NULL, titre = NULL, source = NULL )tableau_descriptif( data, vars, poids = NULL, par = NULL, stats = c("n", "moyenne", "mediane", "ecart_type", "min", "max", "ic"), format = c("tibble", "flextable", "excel"), chemin = NULL, titre = NULL, source = NULL )
data |
data.frame, tibble ou objet |
vars |
character – Variables numeriques a analyser |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
par |
character ou NULL – Variable de ventilation (groupe). Defaut : NULL |
stats |
character – Statistiques parmi :
|
format |
character – |
chemin |
character ou NULL – Chemin Excel. Defaut : NULL |
titre |
character ou NULL – Titre du tableau. Defaut : NULL |
source |
character ou NULL – Note source. Defaut : NULL |
Tibble, flextable ou chemin fichier Excel
set.seed(42) donnees <- data.frame( age = sample(18:65, 200, replace = TRUE), revenu = rexp(200, rate = 1/250000), poids = runif(200, 0.8, 1.3), milieu = sample(c("urbain", "rural"), 200, TRUE) ) tableau_descriptif(donnees, vars = c("age", "revenu"), poids = "poids")set.seed(42) donnees <- data.frame( age = sample(18:65, 200, replace = TRUE), revenu = rexp(200, rate = 1/250000), poids = runif(200, 0.8, 1.3), milieu = sample(c("urbain", "rural"), 200, TRUE) ) tableau_descriptif(donnees, vars = c("age", "revenu"), poids = "poids")
Genere un tableau des indices FGT formate selon les conventions des INS africains et de la Banque mondiale (EHCVM).
tableau_fgt( fgt_obj, format = c("tibble", "flextable", "excel"), chemin = NULL, titre = NULL, inclure_sous_groupes = TRUE )tableau_fgt( fgt_obj, format = c("tibble", "flextable", "excel"), chemin = NULL, titre = NULL, inclure_sous_groupes = TRUE )
fgt_obj |
objet |
format |
character – Format de sortie : |
chemin |
character ou NULL – Chemin du fichier Excel.
Si NULL, utilise |
titre |
character – Titre du tableau |
inclure_sous_groupes |
logical – Inclure les tableaux par sous-groupe. Defaut : TRUE |
Tibble, flextable ou chemin du fichier Excel
set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/400000)), poids = runif(100, 0.8, 1.2) ) fgt <- calcul_fgt(menages, "depense_pc", 220000, poids = "poids") tableau_fgt(fgt)set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, rate = 1/150000), rexp(30, rate = 1/400000)), poids = runif(100, 0.8, 1.2) ) fgt <- calcul_fgt(menages, "depense_pc", 220000, poids = "poids") tableau_fgt(fgt)
Synthetise tous les indicateurs genre en un tableau institutionnel comparable aux rapports ODD 5 et DHS.
tableau_genre( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )tableau_genre( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )
indicateurs |
list – Liste nommee d'objets saf_genre ou tibbles |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
source |
character ou NULL – Source. Defaut : NULL |
Un tibble institutionnel
set.seed(42) n <- 400 femmes <- data.frame( marie_18 = rbinom(n, 1, 0.42), vbg_phys = rbinom(n, 1, 0.28), poids = runif(n, 0.8, 1.3) ) rm <- suppressMessages( mariage_precoce(femmes, "marie_18", poids="poids")) rvbg <- violence_basee_genre(femmes, var_violence_physique="vbg_phys", poids="poids") tableau_genre(list(mariage=rm, vbg=rvbg), pays="RCA", annee=2026L)set.seed(42) n <- 400 femmes <- data.frame( marie_18 = rbinom(n, 1, 0.42), vbg_phys = rbinom(n, 1, 0.28), poids = runif(n, 0.8, 1.3) ) rm <- suppressMessages( mariage_precoce(femmes, "marie_18", poids="poids")) rvbg <- violence_basee_genre(femmes, var_violence_physique="vbg_phys", poids="poids") tableau_genre(list(mariage=rm, vbg=rvbg), pays="RCA", annee=2026L)
Calcule toutes les mesures d'inegalite en une seule fonction et les presente dans un tableau institutionnel. Inclut Gini, Palma, Theil, Atkinson et les parts par quintile.
tableau_inegalites( donnees, var_revenu, poids = NULL, var_groupe = NULL, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )tableau_inegalites( donnees, var_revenu, poids = NULL, var_groupe = NULL, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )
donnees |
data.frame – Donnees menages |
var_revenu |
character – Variable de revenu |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
var_groupe |
character ou NULL – Variable de groupe pour decomposition. Defaut : NULL |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
Un tibble avec toutes les mesures d'inegalite
set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), milieu = sample(c("urbain","rural"), 300, TRUE), poids = runif(300, 0.8, 1.3) ) tableau_inegalites(menages, "depense", poids="poids", var_groupe="milieu", pays="Centrafrique", annee=2026L)set.seed(42) menages <- data.frame( depense = c(rexp(200, 1/150000), rexp(100, 1/500000)), milieu = sample(c("urbain","rural"), 300, TRUE), poids = runif(300, 0.8, 1.3) ) tableau_inegalites(menages, "depense", poids="poids", var_groupe="milieu", pays="Centrafrique", annee=2026L)
Genere un tableau flextable institutionnel (style INS/PARIS21) des resultats IPM, exportable en Word ou Excel.
tableau_ipm( res_ipm, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), chemin_word = NULL )tableau_ipm( res_ipm, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), chemin_word = NULL )
res_ipm |
saf_ipm – Resultat de calcul_ipm() ou calcul_ipm_national() |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee de reference |
chemin_word |
character ou NULL – Chemin Word (.docx). Si NULL, retourne l'objet flextable. Defaut : NULL |
Un objet flextable (invisible si chemin_word fourni)
set.seed(42) n <- 200 menages <- data.frame( nutrition = rbinom(n,1,0.35), electricite = rbinom(n,1,0.60), eau = rbinom(n,1,0.40), poids = runif(n,0.8,1.3) ) res <- calcul_ipm(menages, var_nutrition="nutrition", var_electricite="electricite", var_eau="eau", poids="poids") tableau_ipm(res, pays="Centrafrique", annee=2026L)set.seed(42) n <- 200 menages <- data.frame( nutrition = rbinom(n,1,0.35), electricite = rbinom(n,1,0.60), eau = rbinom(n,1,0.40), poids = runif(n,0.8,1.3) ) res <- calcul_ipm(menages, var_nutrition="nutrition", var_electricite="electricite", var_eau="eau", poids="poids") tableau_ipm(res, pays="Centrafrique", annee=2026L)
Synthetise tous les indicateurs du marche du travail en un tableau institutionnel unique, comparable aux publications OIT/ILOSTAT et aux rapports nationaux sur l'emploi.
tableau_marche_travail( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )tableau_marche_travail( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )
indicateurs |
list – Liste nommee d'objets saf_emploi ou tibbles (protection_sociale, taux_sous_utilisation) |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
source |
character ou NULL – Source. Defaut : NULL |
Un tibble institutionnel
set.seed(42) n <- 500 ind <- data.frame( actif = rbinom(n, 1, 0.65), employe = rbinom(n, 1, 0.55), informel = rbinom(n, 1, 0.72), poids = runif(n, 0.8, 1.3), stringsAsFactors = FALSE ) r1 <- suppressMessages(taux_activite(ind, "actif", poids="poids")) r2 <- suppressMessages(taux_emploi(ind, "employe", poids="poids")) r3 <- suppressMessages(emploi_informel(ind, "informel", poids="poids")) tableau_marche_travail(list(activite=r1, emploi=r2, informel=r3), pays="Centrafrique", annee=2026L)set.seed(42) n <- 500 ind <- data.frame( actif = rbinom(n, 1, 0.65), employe = rbinom(n, 1, 0.55), informel = rbinom(n, 1, 0.72), poids = runif(n, 0.8, 1.3), stringsAsFactors = FALSE ) r1 <- suppressMessages(taux_activite(ind, "actif", poids="poids")) r2 <- suppressMessages(taux_emploi(ind, "employe", poids="poids")) r3 <- suppressMessages(emploi_informel(ind, "informel", poids="poids")) tableau_marche_travail(list(activite=r1, emploi=r2, informel=r3), pays="Centrafrique", annee=2026L)
Calcule et presente plusieurs indicateurs ODD dans un tableau de suivi formate selon les standards de reporting PARIS21/Nations Unies.
tableau_odd( resultats, pays = NULL, annee = NULL, cibles = NULL, format = c("tibble", "flextable", "excel"), chemin = NULL )tableau_odd( resultats, pays = NULL, annee = NULL, cibles = NULL, format = c("tibble", "flextable", "excel"), chemin = NULL )
resultats |
list – Liste nommee d'objets |
pays |
character ou NULL – Nom du pays. Defaut : NULL |
annee |
integer ou NULL – Annee de reference. Defaut : NULL |
cibles |
list ou NULL – Liste nommee des cibles nationales par
code ODD. Ex : |
format |
character – |
chemin |
character ou NULL – Chemin Excel. Defaut : NULL |
Tibble, flextable ou chemin Excel
set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, 1/150000), rexp(30, 1/500000)), poids = runif(100, 0.8, 1.2), electricite = sample(c(0L, 1L), 100, TRUE, c(0.45, 0.55)), eau_potable = sample(c(0L, 1L), 100, TRUE, c(0.35, 0.65)) ) r1 <- odd_indicateur(menages, "1.2.1", var_depense = "depense_pc", seuil = 200000) r2 <- odd_indicateur(menages, "7.1.1", var_indicateur = "electricite") tableau_odd(list(r1, r2), pays = "Centrafrique", annee = 2026L)set.seed(42) menages <- data.frame( depense_pc = c(rexp(70, 1/150000), rexp(30, 1/500000)), poids = runif(100, 0.8, 1.2), electricite = sample(c(0L, 1L), 100, TRUE, c(0.45, 0.55)), eau_potable = sample(c(0L, 1L), 100, TRUE, c(0.35, 0.65)) ) r1 <- odd_indicateur(menages, "1.2.1", var_depense = "depense_pc", seuil = 200000) r2 <- odd_indicateur(menages, "7.1.1", var_indicateur = "electricite") tableau_odd(list(r1, r2), pays = "Centrafrique", annee = 2026L)
Synthetise tous les indicateurs de sante disponibles en un seul tableau institutionnel. Produit un rapport comparable aux tableaux de bord DHS/MICS.
tableau_sante( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )tableau_sante( indicateurs, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")), source = NULL )
indicateurs |
list – Liste nommee d'objets saf_anthropo ou saf_mortalite, ou tibbles de vaccination/accouchements |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee. Defaut : annee courante |
source |
character ou NULL – Source des donnees. Defaut : NULL |
Un tibble institutionnel
set.seed(42) n <- 400 enfants <- data.frame( haz = rnorm(n,-1.2,1.3), waz = rnorm(n,-1.0,1.2), poids = runif(n,0.8,1.3) ) r1 <- suppressMessages( retard_croissance(enfants, var_taille_age_z="haz", poids="poids")) r2 <- suppressMessages( insuffisance_ponderale(enfants, var_poids_age_z="waz", poids="poids")) tableau_sante(list(stunting=r1, underweight=r2), pays="Centrafrique", annee=2026L)set.seed(42) n <- 400 enfants <- data.frame( haz = rnorm(n,-1.2,1.3), waz = rnorm(n,-1.0,1.2), poids = runif(n,0.8,1.3) ) r1 <- suppressMessages( retard_croissance(enfants, var_taille_age_z="haz", poids="poids")) r2 <- suppressMessages( insuffisance_ponderale(enfants, var_poids_age_z="waz", poids="poids")) tableau_sante(list(stunting=r1, underweight=r2), pays="Centrafrique", annee=2026L)
Calcule le taux d'activite selon la definition du Bureau International du Travail (BIT) : proportion de la population en age de travailler qui est active (employes + chomeurs). ODD 8.
taux_activite( donnees, var_actif, var_age = NULL, age_min = 15L, age_max = 64L, poids = NULL, sous_groupes = NULL )taux_activite( donnees, var_actif, var_age = NULL, age_min = 15L, age_max = 64L, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles ou menages |
var_actif |
character – Variable 0/1 : actif (employe ou chomeur) |
var_age |
character ou NULL – Variable age pour filtrer la population en age de travailler. Defaut : NULL |
age_min |
integer – Age minimum. Defaut : 15L |
age_max |
integer – Age maximum. Defaut : 64L |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation (sexe, milieu, region). Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) n <- 500 individus <- data.frame( actif = rbinom(n, 1, 0.65), age = sample(15:64, n, TRUE), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) taux_activite(individus, "actif", var_age="age", poids="poids", sous_groupes=c("sexe","milieu"))set.seed(42) n <- 500 individus <- data.frame( actif = rbinom(n, 1, 0.65), age = sample(15:64, n, TRUE), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) taux_activite(individus, "actif", var_age="age", poids="poids", sous_groupes=c("sexe","milieu"))
Calcule les taux de croissance reels et nominaux du PIB et la contribution de chaque secteur a la croissance. Conforme aux methodes SCN 2008.
taux_croissance( donnees, var_pib, vars_secteurs = NULL, var_annee = "annee", var_trimestre = NULL )taux_croissance( donnees, var_pib, vars_secteurs = NULL, var_annee = "annee", var_trimestre = NULL )
donnees |
data.frame – Donnees de comptes nationaux avec secteurs |
var_pib |
character – Variable PIB total (prix constants) |
vars_secteurs |
named character ou NULL – Vecteur nomme des variables sectorielles. Ex : c(Agriculture="agri", Industrie="indus") |
var_annee |
character – Variable annee. Defaut : "annee" |
var_trimestre |
character ou NULL – Variable trimestre (si donnees trimestrielles). Defaut : NULL |
Un tibble avec taux de croissance et contributions sectorielles
comptes <- data.frame( annee = 2018:2022, pib = c(2100, 2180, 2250, 2195, 2380), agri = c(420, 440, 460, 445, 490), indus = c(630, 660, 680, 660, 715), serv = c(1050, 1080, 1110, 1090, 1175) ) taux_croissance(comptes, "pib", vars_secteurs = c(Agriculture="agri", Industrie="indus", Services="serv"), var_annee = "annee")comptes <- data.frame( annee = 2018:2022, pib = c(2100, 2180, 2250, 2195, 2380), agri = c(420, 440, 460, 445, 490), indus = c(630, 660, 680, 660, 715), serv = c(1050, 1080, 1110, 1090, 1175) ) taux_croissance(comptes, "pib", vars_secteurs = c(Agriculture="agri", Industrie="indus", Services="serv"), var_annee = "annee")
Proportion de la population en age de travailler ayant un emploi (salarie ou independant). Indicateur cle ODD 8.5.
taux_emploi( donnees, var_employe, var_age = NULL, age_min = 15L, age_max = 64L, poids = NULL, sous_groupes = NULL )taux_emploi( donnees, var_employe, var_age = NULL, age_min = 15L, age_max = 64L, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees individuelles |
var_employe |
character – Variable 0/1 : a un emploi |
var_age |
character ou NULL – Variable age. Defaut : NULL |
age_min |
integer – Age minimum. Defaut : 15L |
age_max |
integer – Age maximum. Defaut : 64L |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) individus <- data.frame( employe = rbinom(500, 1, 0.55), age = sample(15:64, 500, TRUE), sexe = sample(c("H","F"), 500, TRUE), poids = runif(500, 0.8, 1.3) ) taux_emploi(individus, "employe", var_age="age", poids="poids", sous_groupes="sexe")set.seed(42) individus <- data.frame( employe = rbinom(500, 1, 0.55), age = sample(15:64, 500, TRUE), sexe = sample(c("H","F"), 500, TRUE), poids = runif(500, 0.8, 1.3) ) taux_emploi(individus, "employe", var_age="age", poids="poids", sous_groupes="sexe")
Calcule le taux composite OIT LU3 ou LU4 qui agrege le chomage, le sous-emploi en temps de travail et les actifs potentiels non recherchant activement. Depasse le simple taux de chomage pour mesurer la sous-utilisation reelle.
taux_sous_utilisation( donnees, var_chomeur, var_sous_emploi_t = NULL, var_actif_potentiel = NULL, poids = NULL )taux_sous_utilisation( donnees, var_chomeur, var_sous_emploi_t = NULL, var_actif_potentiel = NULL, poids = NULL )
donnees |
data.frame – Donnees individuelles |
var_chomeur |
character – Variable 0/1 : chomeur (BIT) |
var_sous_emploi_t |
character ou NULL – Variable 0/1 : sous-emploi temps. Defaut : NULL |
var_actif_potentiel |
character ou NULL – Variable 0/1 : actif potentiel (souhaite travailler mais ne cherche pas). Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
Un tibble avec les composantes et le taux composite
set.seed(42) n <- 500 individus <- data.frame( chomeur = rbinom(n, 1, 0.14), sous_emploi_t = rbinom(n, 1, 0.08), actif_potentiel = rbinom(n, 1, 0.05), poids = runif(n, 0.8, 1.3) ) taux_sous_utilisation(individus, "chomeur", var_sous_emploi_t = "sous_emploi_t", var_actif_potentiel = "actif_potentiel", poids = "poids")set.seed(42) n <- 500 individus <- data.frame( chomeur = rbinom(n, 1, 0.14), sous_emploi_t = rbinom(n, 1, 0.08), actif_potentiel = rbinom(n, 1, 0.05), poids = runif(n, 0.8, 1.3) ) taux_sous_utilisation(individus, "chomeur", var_sous_emploi_t = "sous_emploi_t", var_actif_potentiel = "actif_potentiel", poids = "poids")
Applique un thème graphique professionnel adapté aux publications officielles des Instituts Nationaux de Statistique africains. Inspiré des chartes graphiques AFRISTAT/PARIS21.
theme_ins( base_size = 11, base_family = "sans", couleur_fond = "white", grille = TRUE, grille_mineure = FALSE )theme_ins( base_size = 11, base_family = "sans", couleur_fond = "white", grille = TRUE, grille_mineure = FALSE )
base_size |
numeric — Taille de base de la police. Défaut : 11. |
base_family |
character — Famille de police. Défaut : "sans". |
couleur_fond |
character — Couleur de fond du panneau. Défaut : "white". |
grille |
logical — Afficher les lignes de grille. Défaut : TRUE. |
grille_mineure |
logical — Afficher la grille mineure. Défaut : FALSE. |
Un objet theme ggplot2.
if (requireNamespace("ggplot2", quietly = TRUE)) { ggplot2::ggplot(mtcars, ggplot2::aes(wt, mpg)) + ggplot2::geom_point() + theme_ins() }if (requireNamespace("ggplot2", quietly = TRUE)) { ggplot2::ggplot(mtcars, ggplot2::aes(wt, mpg)) + ggplot2::geom_point() + theme_ins() }
Crée et maintient un journal horodaté des transformations appliquées à un dataset. Permet l'auditabilité complète du pipeline de traitement des données.
tracer_flux_traitement(data, action, journal = NULL, details = NULL)tracer_flux_traitement(data, action, journal = NULL, details = NULL)
data |
data.frame ou tibble — Données traitées |
action |
character — Description de l'action effectuée |
journal |
list ou NULL — Journal existant à compléter. Si NULL, crée un nouveau journal. Défaut : NULL. |
details |
list ou NULL — Détails supplémentaires à enregistrer (ex: paramètres utilisés). Défaut : NULL. |
Une liste mise à jour avec $donnees et $journal.
## Not run: donnees <- data.frame(id=1:3, val=c(10,20,30)) e1 <- tracer_flux_traitement(donnees, action="Import") e2 <- tracer_flux_traitement(e1$donnees, action="Nettoyage", journal=e1$journal) print(e2$journal) ## End(Not run)## Not run: donnees <- data.frame(id=1:3, val=c(10,20,30)) e1 <- tracer_flux_traitement(donnees, action="Import") e2 <- tracer_flux_traitement(e1$donnees, action="Nettoyage", journal=e1$journal) print(e2$journal) ## End(Not run)
Prevalence du travail des enfants (5-17 ans) selon la definition OIT/MICS. ODD 8.7.1.
travail_enfants( donnees, var_travail_enfant, var_age = NULL, poids = NULL, sous_groupes = NULL )travail_enfants( donnees, var_travail_enfant, var_age = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees enfants 5-17 ans |
var_travail_enfant |
character – Variable 0/1 : enfant au travail |
var_age |
character ou NULL – Variable age pour filtrer 5-17 ans. Defaut : NULL |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un objet de classe saf_emploi
set.seed(42) n <- 600 enfants <- data.frame( travail = rbinom(n, 1, 0.22), age = sample(5:17, n, TRUE), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) travail_enfants(enfants, "travail", var_age="age", poids="poids", sous_groupes=c("sexe","milieu"))set.seed(42) n <- 600 enfants <- data.frame( travail = rbinom(n, 1, 0.22), age = sample(5:17, n, TRUE), sexe = sample(c("H","F"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) travail_enfants(enfants, "travail", var_age="age", poids="poids", sous_groupes=c("sexe","milieu"))
Calcule la couverture vaccinale par antigene selon la methodologie DHS/MICS. Indicateurs ODD 3.b.1.
vaccination( donnees, vars_vaccins, poids = NULL, var_carte_sante = NULL, sous_groupes = NULL )vaccination( donnees, vars_vaccins, poids = NULL, var_carte_sante = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees enfants |
vars_vaccins |
named character – Vecteur nomme : nom du vaccin -> nom de la variable (0/1). Ex: c(DTC3="dtc3", Rougeole="rougeole") |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
var_carte_sante |
character ou NULL – Variable indiquant si l'enfant a une carte de sante (pour ajustement). Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec couverture par antigene
set.seed(42) n <- 500 enfants <- data.frame( dtc3 = rbinom(n, 1, 0.72), rougeole = rbinom(n, 1, 0.68), polio3 = rbinom(n, 1, 0.75), bcg = rbinom(n, 1, 0.90), poids = runif(n, 0.8, 1.3), milieu = sample(c("urbain","rural"), n, TRUE) ) vaccination(enfants, vars_vaccins = c(DTC3="dtc3", Rougeole="rougeole", Polio3="polio3", BCG="bcg"), poids = "poids")set.seed(42) n <- 500 enfants <- data.frame( dtc3 = rbinom(n, 1, 0.72), rougeole = rbinom(n, 1, 0.68), polio3 = rbinom(n, 1, 0.75), bcg = rbinom(n, 1, 0.90), poids = runif(n, 0.8, 1.3), milieu = sample(c("urbain","rural"), n, TRUE) ) vaccination(enfants, vars_vaccins = c(DTC3="dtc3", Rougeole="rougeole", Polio3="polio3", BCG="bcg"), poids = "poids")
Verifie que les donnees couvrent l'ensemble des zones du referentiel officiel. Identifie les zones manquantes, les doublons et les zones surnumeraires (non dans le referentiel).
valider_coherence_geo(donnees, var_zone, referentiel, var_ref = "nom_local")valider_coherence_geo(donnees, var_zone, referentiel, var_ref = "nom_local")
donnees |
data.frame – Donnees a verifier |
var_zone |
character – Variable zone dans les donnees |
referentiel |
data.frame ou saf_concordance – Referentiel officiel |
var_ref |
character – Variable zone dans le referentiel. Defaut : "nom_local" |
Un tibble de rapport de coherence
donnees <- data.frame( region = c("Bangui","Ombella-M'Poko","Bangui"), valeur = c(100, 200, 50), stringsAsFactors = FALSE ) ref <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Kemo","Mbomou"), stringsAsFactors = FALSE ) valider_coherence_geo(donnees, "region", ref, "nom_local")donnees <- data.frame( region = c("Bangui","Ombella-M'Poko","Bangui"), valeur = c(100, 200, 50), stringsAsFactors = FALSE ) ref <- data.frame( nom_local = c("Bangui","Ombella-M'Poko","Kemo","Mbomou"), stringsAsFactors = FALSE ) valider_coherence_geo(donnees, "region", ref, "nom_local")
Vérifie que les variables d'un dataset correspondent au dictionnaire fourni : présence des variables, types, plages de valeurs, modalités attendues. Produit un rapport de validation structuré avec un score de qualité global.
valider_dictionnaire(data, dictionnaire, stopper_si_critique = FALSE)valider_dictionnaire(data, dictionnaire, stopper_si_critique = FALSE)
data |
data.frame ou tibble — Données à valider |
dictionnaire |
data.frame — Dictionnaire avec colonnes obligatoires :
|
stopper_si_critique |
logical — Arrêter l'exécution si des erreurs critiques sont détectées. Défaut : FALSE. |
Une liste avec :
valide |
logical — TRUE si aucune erreur critique |
rapport |
data.frame — Détail des anomalies |
score_qualite |
numeric — Score de 0 à 100 |
## Not run: dico <- data.frame( nom_variable = c("age", "sexe", "region"), type = c("numeric", "character", "character"), obligatoire = c(TRUE, TRUE, FALSE) ) resultat <- valider_dictionnaire(donnees, dico) if (!resultat$valide) print(resultat$rapport) ## End(Not run)## Not run: dico <- data.frame( nom_variable = c("age", "sexe", "region"), type = c("numeric", "character", "character"), obligatoire = c(TRUE, TRUE, FALSE) ) resultat <- valider_dictionnaire(donnees, dico) if (!resultat$valide) print(resultat$rapport) ## End(Not run)
Verifie la coherence des poids de sondage : somme par strate, detection des poids aberrants (outliers), DEFF eleves, comparaison avec la population cible. Etape indispensable avant toute analyse.
valider_poids(saf_design, population_cible = NULL, seuil_outlier = 3)valider_poids(saf_design, population_cible = NULL, seuil_outlier = 3)
saf_design |
saf_design – Objet cree par |
population_cible |
numeric ou NULL – Population totale cible (pour verifier que sum(poids) est coherent). Defaut : NULL |
seuil_outlier |
numeric – Seuil de detection des outliers en ecarts-types (score Z). Defaut : 3.0 |
Un tibble avec les statistiques de validation par strate
set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) valider_poids(design)set.seed(42) n <- 300 donnees <- data.frame( poids_sond = runif(n, 1800, 3500), strate = sample(c("Urbain","Rural"), n, TRUE), grappe = sample(1:20, n, TRUE) ) design <- suppressMessages( creer_design(donnees,"poids_sond",var_strate="strate",var_grappe="grappe")) valider_poids(design)
Calcule un score de qualité composite (0-100) en évaluant la complétude, la cohérence, l'unicité et la plausibilité des données.
valider_qualite_donnees(data, seuil_na = 0.1, vars_cles = NULL)valider_qualite_donnees(data, seuil_na = 0.1, vars_cles = NULL)
data |
data.frame ou tibble — Données à évaluer |
seuil_na |
numeric — Seuil acceptable de valeurs manquantes. Défaut : 0.1. |
vars_cles |
character ou NULL — Variables clés pour le test d'unicité. Défaut : NULL. |
Une liste avec score_global et le détail par dimension.
## Not run: donnees <- data.frame( id_menage = 1:50, age = c(sample(20:70, 45, replace = TRUE), rep(NA, 5)), revenu = c(rnorm(48, 200000, 50000), NA, NA) ) valider_qualite_donnees(donnees, vars_cles="id_menage") ## End(Not run)## Not run: donnees <- data.frame( id_menage = 1:50, age = c(sample(20:70, 45, replace = TRUE), rep(NA, 5)), revenu = c(rnorm(48, 200000, 50000), NA, NA) ) valider_qualite_donnees(donnees, vars_cles="id_menage") ## End(Not run)
Produit un rapport de validation complet couvrant 10 criteres de qualite statistique institutionnelle : donnees, poids, plan de sondage, valeurs manquantes, geographie, precision, confidentialite, metadonnees, reproductibilite et indicateurs cles. Conforme aux standards IHSN / PARIS21 / ONU.
valider_statistique_ins( donnees, var_poids = NULL, var_region = NULL, var_milieu = NULL, var_depense = NULL, seuil_pauvrete = NULL, dictionnaire = NULL, seuil_na_alerte = 0.05, seuil_cv_alerte = 33, seuil_cellule = 5L, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )valider_statistique_ins( donnees, var_poids = NULL, var_region = NULL, var_milieu = NULL, var_depense = NULL, seuil_pauvrete = NULL, dictionnaire = NULL, seuil_na_alerte = 0.05, seuil_cv_alerte = 33, seuil_cellule = 5L, pays = "Pays", annee = as.integer(format(Sys.Date(), "%Y")) )
donnees |
data.frame – Donnees de l'enquete |
var_poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
var_region |
character ou NULL – Variable region/prefecture. Defaut : NULL |
var_milieu |
character ou NULL – Variable milieu. Defaut : NULL |
var_depense |
character ou NULL – Variable de consommation/depense pour le calcul FGT. Defaut : NULL |
seuil_pauvrete |
numeric ou NULL – Seuil de pauvrete. Defaut : NULL |
dictionnaire |
data.frame ou NULL – Dictionnaire des variables avec colonnes : variable, label, type_attendu. Defaut : NULL |
seuil_na_alerte |
numeric – Seuil de % valeurs manquantes declenchant une alerte. Defaut : 0.05 (5%) |
seuil_cv_alerte |
numeric – Seuil de CV declenchant une alerte. Defaut : 33.0 |
seuil_cellule |
integer – Seuil de confidentialite. Defaut : 5L |
pays |
character – Nom du pays. Defaut : "Pays" |
annee |
integer – Annee de l'enquete. Defaut : annee courante |
Un objet de classe saf_validation_ins avec le rapport
complet et le statut global
set.seed(42) n <- 500 donnees <- data.frame( region = sample(c("Nord","Sud","Est","Ouest"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 800, 3500), depense = pmax(10000, rnorm(n, 165000, 90000)), sexe = sample(c("H","F"), n, TRUE), age = sample(15:80, n, TRUE), stringsAsFactors = FALSE ) valider_statistique_ins(donnees, var_poids = "poids", var_region = "region", var_milieu = "milieu", pays = "Centrafrique", annee = 2024L)set.seed(42) n <- 500 donnees <- data.frame( region = sample(c("Nord","Sud","Est","Ouest"), n, TRUE), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 800, 3500), depense = pmax(10000, rnorm(n, 165000, 90000)), sexe = sample(c("H","F"), n, TRUE), age = sample(15:80, n, TRUE), stringsAsFactors = FALSE ) valider_statistique_ins(donnees, var_poids = "poids", var_region = "region", var_milieu = "milieu", pays = "Centrafrique", annee = 2024L)
Prevalence des violences physiques, sexuelles et/ou psychologiques exercees par un partenaire intime ou un non-partenaire. Methodologie DHS/OMS. ODD 5.2.1.
violence_basee_genre( donnees, var_violence_physique = NULL, var_violence_sexuelle = NULL, var_violence_psycho = NULL, poids = NULL, sous_groupes = NULL )violence_basee_genre( donnees, var_violence_physique = NULL, var_violence_sexuelle = NULL, var_violence_psycho = NULL, poids = NULL, sous_groupes = NULL )
donnees |
data.frame – Donnees femmes (15-49 ans) |
var_violence_physique |
character ou NULL – VBG physique (0/1) |
var_violence_sexuelle |
character ou NULL – VBG sexuelle (0/1) |
var_violence_psycho |
character ou NULL – VBG psychologique (0/1) |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
sous_groupes |
character ou NULL – Variables de desagregation. Defaut : NULL |
Un tibble avec prevalence par type de violence
set.seed(42) n <- 500 femmes <- data.frame( vbg_phys = rbinom(n, 1, 0.28), vbg_sex = rbinom(n, 1, 0.18), vbg_psycho = rbinom(n, 1, 0.35), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) violence_basee_genre(femmes, var_violence_physique = "vbg_phys", var_violence_sexuelle = "vbg_sex", var_violence_psycho = "vbg_psycho", poids = "poids", sous_groupes = "milieu")set.seed(42) n <- 500 femmes <- data.frame( vbg_phys = rbinom(n, 1, 0.28), vbg_sex = rbinom(n, 1, 0.18), vbg_psycho = rbinom(n, 1, 0.35), milieu = sample(c("urbain","rural"), n, TRUE), poids = runif(n, 0.8, 1.3) ) violence_basee_genre(femmes, var_violence_physique = "vbg_phys", var_violence_sexuelle = "vbg_sex", var_violence_psycho = "vbg_psycho", poids = "poids", sous_groupes = "milieu")
Mesure l'attraction des ages se terminant par 0 et 5 dans les declarations d'age. Un indice de Whipple < 105 indique des donnees de tres bonne qualite ; > 175 indique une qualite tres mauvaise. Methodologie Nations Unies / IUSSP.
whipple(donnees, var_age, age_min = 23L, age_max = 62L, poids = NULL)whipple(donnees, var_age, age_min = 23L, age_max = 62L, poids = NULL)
donnees |
data.frame – Donnees individuelles |
var_age |
character – Variable age en annees revolues |
age_min |
integer – Age minimum pour le calcul. Defaut : 23L |
age_max |
integer – Age maximum pour le calcul. Defaut : 62L |
poids |
character ou NULL – Variable de ponderation. Defaut : NULL |
Un objet de classe saf_qualite_demo
set.seed(42) n <- 1000 # Simulation d'attraction sur les multiples de 5 ages_base <- sample(23:62, n, TRUE) attire <- ages_base - (ages_base %% 5) # attire vers 0 et 5 ages <- ifelse(runif(n) < 0.25, attire, ages_base) individus <- data.frame(age = ages, poids = runif(n, 0.8, 1.3)) whipple(individus, "age")set.seed(42) n <- 1000 # Simulation d'attraction sur les multiples de 5 ages_base <- sample(23:62, n, TRUE) attire <- ages_base - (ages_base %% 5) # attire vers 0 et 5 ages <- ifelse(runif(n) < 0.25, attire, ages_base) individus <- data.frame(age = ages, poids = runif(n, 0.8, 1.3)) whipple(individus, "age")