knitr::opts_chunk$set( eval = FALSE, collapse = TRUE, comment = "#>" )
Avant de tenter de fusionner, organiser les fichiers par enquête: un répertoire pour les NSU de consommation; un autre pour les NSU de production.
Voici un exemple du contenu d'un répertoire pour les NSU de consommation:
fs::dir_tree(path = "C:/Users/wb393438/OneDrive - WBG/EHCVM2/nsu/nsu_combine_data/data/datansubrut/", recurse = 0, type = "directory")
Afin d'adapter le programme de fusion, il faut spécifier deux répertoires:
dir_in
, le répertoire où se trouvent les fichiers à joindre;dir_out
, le répertoire où sauvegarder les bases résultantesPar exemple, supposons que les données des NSU de consommation sont organisés comme suit:
[INSERT image/file map of folders]
Dans cet exemple, le sous-répertoire entree
contient les données brutes--autrement dit, les données d'entrée dans la procédure de fusion. Le sous-répertoire sortie
contient les données fusionnées--autrement dit, le
Avec la fonction combine_nsu_data()
, qui est responsable de la fusion des bases, on doit spécifier les répertoires ainsi :
combine_nsu_data( dir_in = "C:/EHCVM/NSU/consommation/entree/", dir_out = "C:/EHCVM/NSU/consommation/sortie/" )
Notez bien que les répertoires doivent:
"C:/EHCVM/NSU/consommation/entree/"
)Voici une exemple du dernier point:
[Show screenshot/folder tree of folder with sub-folders]
La fonction de fusion combine_nsu_data()
parcourt tous les sous-répertoires du répertoire indiqué dans dir_in
. Certains peuvent ne pas contenir des données.
Pour anticiper ce genre de cas, la fonction combine_nsu_data()
admet un argument pour identifier les sous répertoires qui contiennent les données. Pour voir l'intérêt, imagineons qu'un répertoire loge des sous-répertoire de données ainsi que des sous-répertoires d'images. Pour que la fonction marche correctement, il faut sélectionner seulement les sous-répertoires de données. Par défaut, la fonction suppose que les sous-répertoires de données ont "STATA" dans le nom.
combine_nsu_data( dir_in = "C:/EHCVM/NSU/consommation/entree/", dir_regexp = "_STATA_", dir_out = "C:/EHCVM/NSU/consommation/sortie/" )
Mais l'argument dir_regexp
permet de s'adapter à des situations différentes. Par exemple, où les sous-répertoires aurait le data
dans le nom:
combine_nsu_data( dir_in = "C:/EHCVM/NSU/consommation/entree/", dir_regexp = "data", dir_out = "C:/EHCVM/NSU/consommation/sortie/" )
La fonction combine_nsu_data()
accomplit toutes les actions de fusion:
Pour chaque type de fichier, la fonction
En plus, la fonction joint les fichiers avec des informations sur les marchés où les relevés ont été pris.
Pour accomplir ceci, il suffit de lancer une fonction en spécifiant correctement les paramétres:
combine_nsu_data( dir_in = "C:/EHCVM/NSU/consommation/entree/", dir_regexp = "_STATA_", dir_out = "C:/EHCVM/NSU/consommation/sortie/" )
Les images sont regroupés comme suit dans les fichiers exportés par Survey Solutions:
[INSERT image or file tree of images]
Pour être utiles, les images sont mieux regroupées par produit-unité.
Pour en arriver là, il faut invoquer trois fonctions:
inventory_product_units()
create_image_dirs()
sort_images()
La fonction inventory_product_units()
crée à partir des bases fusionnées un inventaire des produits-unités avec images.
La fonction create_image_dirs()
utilise cet inventaire de produits-unités pour savoir quels dossiers créer. En premier lieu, elle crée un répertoire par produit--où nom du produit correspond au nom court qui parait dans les bases. Ensuite, elle crée, à l'intérieur du dossier produit, un sous-répertoire pour chaque unité. Le résultat: un système de répertoires pour héberger les images.
La fonction sort_images()
classe chaque image dans le bon répertoire. En plus, elle adjoint au nom du fichier le interview__key
de l'entretien d'où l'image est tirée. Ceci permet accomplit deux buts en même temps. Premièrement, il aide à savoir de quel entretien chaque image est sortie. Deuxièment, il rend le nom de chaque image unique, pour éviter d'écraser deux images de la même unité (e.g., q109_oignon___138.jpg qui paraît dans les entretiens 11-11-11-11 et 22-22-22-22).
Ces actions--la fusion des bases et le classement des images--devront être refaites régulièrement au fur et à mesure que l'enquête NSU progress.
Comment faire? La solution est simple: relancer les fonctions. La fusion des bases sera faites à nouveau et intégrera de nouvelles observations. Le classement des images sera
Pour ce faire, il suffit de
# fusionner les données afin d'intégrer les nouvelles observations combine_nsu_data( dir_in = "C:/EHCVM/NSU/consommation/entree/", dir_regexp = "_STATA_", dir_out = "C:/EHCVM/NSU/consommation/sortie/" ) # refaire l'inventaire des produits-unités inventaire <- inventory_product_units(dir = "C:/EHCVM/NSU/consommation/sortie/") # créer des répertoires pour les produits-unités # seuls les nouveaux répertoires seront créés; les anciens resteront create_image_dirs( inventory_df = inventaire, dir = ) # copier les images depuis les répertoires d'origine vers les répertoires nouvellement créés sort_images( inventory_df = inventaire, dir_in = , image_dir_pattern = , dir_out = )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.