flowchart TD A[Pays] --> B[Nord] A --> C[Ouest] A --> D[Est] A --> E[Sud] B --> F[N1] B --> G[N2] B --> H[N3] C --> I[O1] C --> J[O2] C --> K[O3] C --> L[O4] D --> M[E1] D --> N[E2] D --> O[E3] E --> P[S1] E --> Q[S2]
7 Prendre en compte une variable hiérarchique
Niveau facile
Reprenons ici l’exemple de la variable geo
qui est une variable hiérarchique puisqu’il existe des emboîtements entre les différents niveaux.
Pour prendre en compte cette hiérarchie il faut d’abord pouvoir la représenter de telle sorte que Tau-Argus comprenne les différents emboîtements présents.
7.1 Première option
La première option consiste à créer le fichier nécessaire (extension .hrc
) à la main. Ceci est tout à fait pertinent si la hiérarchie n’est pas trop étendue.
Tau-Argus attend en effet un type de fichier bien particulier, dont l’extension est .hrc
. Il s’agit d’un simple fichier texte où les différents emboîtements sont écrits les uns en-dessous des autres. Un symbole (le @
) est utilisé pour préciser le niveau de chacun des emboîtements au sein de la hiérarchie.
Dans notre exemple on écrirait le fichier de la façon suivante :
Nord
@N1
@N2
@N3
Ouest
@O1
@O2
@O3
@O4
Est
@E1
@E2
@E3
Sud
@S1 @S2
On remarque que le total Pays
n’est pas inclus dans le fichier .hrc
c’est parce qu’il ne faut pas indiquer le super-total de la hiérarchie à Tau-Argus.
7.2 Seconde option
Quand la hiérarchie est très étendue, l’écriture manuelle du fichier de hiérarchie est pénible. Or, quand ce genre de cas se présente, il existe souvent une table de correspondance permettant d’associer les différents niveaux entre eux.
Nous appelons table de correspondance une table qui précise l’ensemble des niveaux associés aux emboîtements les plus fins.
La table de correspondance représentant la hiérarchie ci-dessus est la suivante:
<- tibble(
pays_corr_table niv0 = "Pays",
niv1 = c(rep("Nord",3),rep("Ouest",4),rep("Est",3), rep("Sud",2)),
niv2 = c(paste0("N",1:3),paste0("O",1:4),paste0("E",1:3), paste0("S",1:2))
) pays_corr_table
# A tibble: 12 × 3
niv0 niv1 niv2
<chr> <chr> <chr>
1 Pays Nord N1
2 Pays Nord N2
3 Pays Nord N3
4 Pays Ouest O1
5 Pays Ouest O2
6 Pays Ouest O3
7 Pays Ouest O4
8 Pays Est E1
9 Pays Est E2
10 Pays Est E3
11 Pays Sud S1
12 Pays Sud S2
Avec la fonction write_hrc2()
du package rtauargus
, on peut transformer la table de correspondance en un fichier hrc
.
write_hrc2(pays_corr_table %>% select(-niv0), file_name = "hrc/pays_TA_2.hrc")
Remarque: La fonction rtauargus::write_hrc2()
n’accepte pas de valeurs manquantes dans la table en entrée. Lorsqu’une hiérarchie n’a pas la même nombre de sous-niveaux selon les branches on répète la modalité du niveau supérieur sur les niveaux inférieurs pour ne pas avoir de cases vides.
Exemple : pour la hiérarchie ci-dessous on répète la modalité C
dans la table de correspondance.
flowchart TD A[Total] --> B[A] A --> C[B] A --> D[C] B --> E[A1] B --> F[A2] C --> G[B1] C --> H[B2] H --> I[B21] H --> J[B22]
<- tibble(
corr_tab niv0 = "ALL",
niv1 = c(rep("A",2),rep("B",3), "C"),
niv2 = c("A1","A2","B1",rep("B2",2), "C"),
niv3 = c("A1","A2","B1", "B21", "B22", "C")
) corr_tab
# A tibble: 6 × 4
niv0 niv1 niv2 niv3
<chr> <chr> <chr> <chr>
1 ALL A A1 A1
2 ALL A A2 A2
3 ALL B B1 B1
4 ALL B B2 B21
5 ALL B B2 B22
6 ALL C C C